ㅇ1. 운영체제의 정의
운영체제(operating system) : 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 역할
운영체제는 항상 필요한 부분만 메모리(커널 : kernel)에 올리고, 나머지는 필요할 때 메모리에 올림
✔ 넓은 의미의 운영체제
시스템을 위한 유틸리티들
- MS윈도우에서 파일을 복사하는 프로그램
- 유틸리티들은 운영체제의 일부라 보기 힘들지만, 시스템을 위한 유틸리티로 운영체제에 함께 설치되므로 운영체제에 포함
2. 운영체제의 기능
하드웨어를 위한 역할 : 컴퓨터 시스템 내의 자원(resource)을 효율적으로 관리하는 것
사용자를 위한 역할 : 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것
핵심기능 ) 컴퓨터 시스템 내의 자원을 효율적으로 관리하는것
=> 운영체제 = '자원관리자(resource manager)' *자원 : cpu,메모리, 하드디스크, 소프트웨어 ...
운영체제의 자원 관리는
1. 사용자와 프로그램들 간에 자원이 형평성 있게 분배되도록 해야함.
2. 보안 및 보호기능을 수행함.
3. 운영체제의 분류
단일작업용 운영체제: 한번에 하나의 프로그램만 실행
다중작업용 운영체제: 동시에 2개 이상의 프로그램을 실행
단일 작업용 운영체제
시분할 시스템(time sharing system) : CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
다중 프로그래밍 시스템(multi-programming system) : 메모리 공간을 분할해 여러 프로그램을 동시에 메모리에 올려놓고 처리하는 시스템
다중작업용 운영체제
대화형 시스템(interactive system) : 여러 프로그램을 실행시키나, 사용자 관점에서는 각 프로그램에 대한 키보드 입력 결과를 보여주는 시스템
다중처리기 시스템(multi-processor system) : 하나의 컴퓨터 안에 CPU가 여러 개 설치된 경우. 여러 CPU를 관리하기 위해 복잡한 메커니즘을 요구.
분류기준 : 다중 사용자에 대한 동시지원여부
단일 사용자용 운영체제 : 한 번에 한명의 사용자만 사용하도록 허용
- 하나에 한가지 작업만 수행할 수 있는 경우 ex ) DOS
- 혼자 사용하지만 다중 작업이 가능한 경우 ex ) MS윈도우
다중 사용자용 운영체제 : 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제
분류기준 : 작업을 처리하는 방식
일괄처리방식(batch processing) : 요청된 작업을 일정량씩 모아 한번에 처리. 응답시간이 길다는 단점. ex ) 펀치카드처리시스템
시분할 방식 : 여러 작업 수행시 컴퓨터의 처리 능력을 일정 시간 단위로 분할해 사용하는 방식. ex ) 현대의 대부분 컴퓨터
실시간 방식(real time) : 정해진 시간 안에 일이 반드시 처리됨을 보장해야하는 시스템에서 사용. ex ) 원자로, 공장제어, 미사일 제어 시스템
- 경성 실시간 시스템 (hard realtime system) : 주어진 시간을 지키지 못할 경우 위험한 결과를 초래할 가능성이 있는 시스템
- 연성 실시간 시스템(soft realtime system) : 데이터가 정해진 시간 단위로 전달되어야 기능을 수행할 수 있는 시스템 ex)음악스트리밍
4. 운영체제의 예
MS 윈도우 : 마이크로 소프트사의 운영체제. 시스템에서 새로운 하드웨어 장착하면 운영체제가 자동으로 하드웨어를 감지하여 설정됨(plug and play)
유닉스 : 벨 연구소에서 개발한 운영체제 . 프로그램 개발 환경을 위해 설계된 운영체제. 이식성(protability)이 좋고 커널의 크기가 작음. 안정성이 가장 큰 장점.
5. 운영체제의 자원관리기능
자원의 종류 : 하드웨어 자원(cpu,메모리,주변장치 ..) , 소프트웨어 자원
CPU관리법
CPU스케줄링 : 매 시점 어떤 프로세스에 CPU를 할당해 작업을 처리할 것인지 결정하는 일
- 선입선출(First Come First Served: FCFS) : 먼저온 것 먼저 처리. 오래 걸리는 프로세스가 먼저 실행됐을 경우, 시스템 입장에서 비효율적
- 라운드 로빈(Round Robin) : CPU를 한번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한. 고정된 시간이 지나도 해결되지 못한 프로세스는 다시 뒤에 줄을 서야함.
- 우선순위 (priority) : 대기중인 프로세스에 우선순위를 부여하고 우선순위가 높은 프로세스부터 CPU를 할당
메모리 관리 : 프로세스가 자신의 메모리 영역에만 접근할 수 있도록 관리
물리적 메모리 관리방식
고정분할(fixed partition) 방식 : 물리적 메모리를 몇개의 분할로 미리 나누어 관리.
- 동시 적재되는 최대 프로그램의 수가 분할 개수로 한정
- 분할크기보다 큰 프로그램은 적재 불가
- 남는 공간이 생길 수 있음 (= 내부조각)
가변분할(variable partition) 방식 : 매 시점 프로그램 크기에 맞게 메모리를 분할해서 사용
- 분할 크기때문에 프로그램 실행이 제한되는 경우는 없으나, 메모리 크기보다 큰 프로그램 실행은 불가능
- 외부조각이 생길 수 있음
가상메모리(virtual memeory) 방식 : 물리적 메모리보다 큰 프로그램이 실행되는 것을 지원
- 현재 사용되는 부분만 메모리에 올리고 나머지는 하드디스크같은 보조기억장치에 저장
- 스왑 영역(swap area) : 보조기억장치의 영역
- 페이징(paging) : 가상메모리 주소 공간은 페이지라는 동일한 크기의 작은 단위로 나뉘고, 이를 물리적 메모리와 스왑 영역에 일부분씩 저장한다. 동일한 단위로 메모리를 분할한다.
주변장치 및 입출력 장치 관리
인터럽트(interrupt) 메커니즘
- CPU가 인터럽트 발생 시, 작업을 중단하고 인터럽트 요청을 수행
- 인터럽트 처리루틴 : 인터럽트 발생 시 해야할 작업을 정의한 코드
컨트롤러(controller) : 주변 장치가 탑재한 작은 cpu
- 해당 장치에 대한 업무를 처리, 이를 메인 CPU에 인터럽트를 발생시켜 보고