운영체제의 정의
- 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 협의의 운영체제 (커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분
- 광의의 운영체제 : 커널을 포함한 주변 시스템 유틸리티를 포함한 개념(ex, 파일 탐색기 등)
운영 체제의 목적
- User 측면 : 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공.
- 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공함.
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행.
- Hardware 측면 : 컴퓨터 시스템의 자원을 효율적으로 관리
- 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리
- 실행 중인 프로그램에게 짧은 시간 씩 CPU를 번갈아 할당
- 실행 중인 프로그램에 메모리 공간을 적절히 분배
- CPU와 메모리를 어떻게 할당할 것인가?
- 효율성의 관점 : 1/N으로 분할이 좋은 방법이 아니다.
- 형평성의 관점 : 특정 프로그램이 지나치게 리소스를 못받아선 안된다.
- 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리
운영 체제의 분류
- 작업 처리 가능 수
- 단일 작업 : 한 번에 하나의 작업만 처리 (MS-DOS)
- 다중 작업 : 동시에 두 개 이상의 작업 처리 (UNIX, MS Windows)
- 사용자의 수
- 단일 사용자 : 한 명의 사용자 ex) MS-DOS, MS Windows
- 다중 사용자 : 동시 접속을 할 수 있는지? 사용자 간 보안 기능과 형평성 있는 자원 관리 기능 필요 ex) UNIX, NT server
- 처리 방식
- 일괄 처리
- 작업 요청의 일정량 모아서 한꺼번에 처리
- 작업이 완전 종료될 때까지 기다려야함
- 시분할(time sharing)
- 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐 ex) UNIX
- interactive하다.
- 실시간(Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간시스템을 위한 OS, ex) 원자로/공장 제어, 미사일 제어 등
- 일괄 처리
용어
- Multitasking : 여러 작업을 동시 수행
- Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 강조
- Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
- Multiprocess
- Multiprocessor : 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미
운영체제의 예
- UNIX
- 대형 컴퓨터를 위한 운영 체제
- 유닉스 운영체제를 만들기 위한 언어를 개발, C언어
- 높은 이식성
- 최소한의 커널 구조 (메모리에 상주하는 부분이 적다)
- 다양한 버전
- MS Windows
- 다중 작업용 GUI 기반 운영 체제
- 풍부한 지원 소프트웨어
운영체제 최적화
- CPU 스케줄링
- 누구에게 CPU를 줄까?
- CPU를 짧게 쓰는 프로그램에게 주면 전체 기다리는 시간이 감소됨
- 누구에게 CPU를 줄까?
- 메모리 관리
- 한정된 메모리를 어떻게 쪼개어 쓰지?
- 모든 프로그램을 메모리 상에 올리는 것은 불가능
- 과거의 사용 데이터를 기반으로 메모리를 최적화함
- 한정된 메모리를 어떻게 쪼개어 쓰지?
- 파일 관리
- 디스크에 파일을 어떻게 보관하지?
- 디스크는 헤드를 통해서 메모리를 읽고 쓰기 때문에 디스크 스케쥴링이 필요하다.
- 디스크의 헤드의 이동을 줄이는 스케쥴링을 통해 성능 개선 가능(엘리베이터 작동 로직과 비슷하다)
- 디스크에 파일을 어떻게 보관하지?
- 입출력 관리
- 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고받게 하지?
- I/O device의 속도가 상대적으로 매우 느림
- 인터럽트를 기반으로 관리
- I/O와 CPU는 독립적으로 작동하다가 I/O가 인터럽트를 발생시키면 처리
- 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고받게 하지?
- 프로세스 관리
- 프로세스의 생성과 삭제
- 자원 할당 및 반환
- 프로세스 간 협력
- 그 외
- 명령어 해석기
'Computer Science > 운영체제' 카테고리의 다른 글
반효경 운영체제 - 4. CPU Scheduling (0) | 2023.01.15 |
---|---|
반효경 운영체제 - 3. 프로세스 관리 (0) | 2023.01.08 |
반효경 운영체제 - 2.2 쓰레드 (0) | 2023.01.04 |
반효경 운영체제 - 2.1 프로세스 (0) | 2023.01.03 |
반효경 운영체제 - 1. 시스템 구조와 프로그램 실행 (0) | 2023.01.03 |