1. 운영체제(Operating System, OS)란 무엇인가?
- 컴퓨터 하드웨어 바로 위에 설치되어, 소프트웨어와 사용자가 하드웨어 사이를 연결하는 소프트웨어 계층.
- 좁은 의미의 운영체제 (커널) : 메모리에 상주하여 하드웨어의 자원을 배분하는 역할
- 넓은 의미의 운영체제 (MS windows, Unix) : 커널과 그 외 다양한 소프트웨어.
2. 운영체제(커널)의 목표
- 컴퓨터 시스템의 자원을 효율적으로 관리
- CPU와 메모리, 입출력 장치의 자원을 각 사용자(각 가상머신)와 각 프로그램에 적절하게 배분하는 역할
3. 운영체제의 분류
3.1. 동시 작업 가능 여부
1) 단일 작업 (single tasking)
- 한 번에 단 하나의 작업만 처리
- MS-DOS
- 작업만을 필요로 하는 현대의 특정 기기
2) 다중 작업 (multi tasking)
- 한 번에 다양한 작업을 처리
- MS windwos, Unix 등
3.2 사용자의 수
1) 단일 사용자(single user)
- 단일한 사용자를 위한 시스템
- MS-DOS, windows 등
2) 다중 사용자(multi user)
- 다양한 사람이 하나의 시스템에 접근하여 작동
- 단일 사용자를 위한 소프트웨어라 하더라도 서버를 구축하여 다중 사용자가 접근할 수 있도록 할 수 있음. window의 경우 로그인을 달리하여 하나의 컴퓨터에 다중 사용자가 사용 할 수 있음.
3.3 처리 방식
1) 일괄처리(batch processing)
- 작업한 요청을 일정량 모아서 한번에 처리.
- 초기의 Punch Card 시스템 (현재 전혀 사용하지 않음)
- punch card의 경우 성적처리 시스템과 유사. OMR 카드의 결과값을 바로 응시자에게 답변하지 않음. 일괄적으로 OMR카드를 수거하여 컴퓨터가 그 값을 처리하고 일괄적으로 응시자에게 전달. 코딩한 punch card를 전산실이 모아서 일괄적으로 컴파일을 하는 방식.
2) 시분할(time sharing)
- 자원(cpu 등)을 여러 사용자(혹은 작업)가 시간 단위로 공유/분할하여 사용.
- 사용자의 입장에서는 자신의 입력 값을 즉각적으로 응답 받기 때문에 상호작용적임(interactive). 응답 시간이 일괄처리에 비하여 매우 짧음.
- 결과 값 도출에 대한 제한 시간(deadline)이 존재하지 않음.
3) 실시간(Realtime OS)
- 결과 값이 도출되어야 하는 제한 시간(deadline)이 존재하며 그 시간을 운영체제는 반드시 보장해야 함.
- 미사일 / 원자로 / 반도체 등 엄격한 제어가 필요한 경우 사용.
- Hard Realtime System : 매우 엄격한 실시간 운영체제. 시간을 보장받지 못하면 큰 문제가 발생할 수 있음.
- Soft Realtime System : 제한 시간이 존재하나, 큰 문제가 발생하지고 불편함. 영상의 디코딩의 경우 1초에 24장의 이미지가 출력되도록 설계되었지만, 성능 상 문제로 이미지가 15장이 출력되더라도 치명적인 문제가 발생하는 것은 아님.
4. 운영 체제의 구조
- 운영 체제는 cpu/메모리/외장메모리/입출력장치(I/O device)의 자원을 어떻게 효율적으로 분배하느냐가 가장 큰 쟁점.
- 은행에서 단일한 상담사(단일 cpu)가 고객들을 응대하는 것과 유사. 은행 업무를 고객이 온 순서대로 처리를 하는 것이 공정할 수 있다.하지만 첫 번째 손님이 100분의 시간을 사용하고 그 뒤의 고객이 1분 밖에 업무를 하지 않는다고 가정하면, 전체 고객의 입장에서는 매우 비효율적일 수 있음. 자원의 효율적인 배분을 스케쥴링이라 함.
1) cpu 스케쥴링
- 다른 장치에 비하여 매우 빠른 cpu의 자원을 효율적으로 사용하기 위한 루틴.
- 여러 프로세스가 cpu를 공유하여 효과적으로 처리하기 위한 운영체제의 기능.
2) 메모리 관리
- 한정된 메모리를 효율적으로 사용하기 위한 기능.
- 필요한 메모리를 외장 메모리로부터 불러오고, 더 이상 필요 없는 메모리를 삭제하는 기능.
- 작업을 필요로 하는 것을 예측하여 디스크로부터 메모리에 로딩해야 cpu의 성능을 최대한으로 사용할 수 있음. 사용의 횟수, 기간 등 과거의 기록을 통해 미래의 사용을 예측하여 메모리를 미리 로딩함.
3) I/O 디바이스
- 입출력장치의 사용을 효율적으로 하기 위한 기능.
- 디스크의 경우 헤더를 통해 저장된 데이타를 불러옴. 디스크가 요청된 순서대로 해당 값을 불러오기 보다, 헤더의 이동 경로에 따라 값을 불러오는 것이 더 효과적일 수 있음. (엘레베이터에서 100층 1층 99층 2층을 눌렀다고 하여, 그 순서대로 엘레베이터가 이동하는 것이 아닌, 1층 - 2층 - 99층 - 100층을 이동하는 것과 같음)
4) 기타
5. 기타 용어 비교