Chapter2. 운영체제 개요
카테고리: OS
태그: CS
유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.
🔧 운영체제의 역할
- User Interface (편리성)
- CUI (Character User Interface)
- GUI (Graphical User Interface)
- EUCI (End-User Comfortable Interface)
- ex) MP3를 위한 UI
- Resource Management (효율성)
- CPU 놀리지 말자
- HW resource (processor, memory, I/O devices …)
- SW resource (application, file, signal …)
- Process and Thread Management
- System Management (시스템 보호)
🔧 운영체제의 구분
- 동시 사용자 수
- 동시 실행 프로세스 수
- 작업 수행 방식
동시 사용자 수에 따른 구분
단일 사용자 (Single-User System)
- 한 명의 사용자가 모든 시스템 자원 독점
- 자원관리 및 시스템 보호 방식이 간단
- 개인용 장비(PC, Mobile) 등에 사용
- ex) Windows, android, macOS, …
다중 사용자 (Multi-User System)
- 동시에 여러 사용자들이 시스템 사용
- 각종 시스템 자원들에 대한 소유 권한 관리 필요
- OS의 기능 및 구조가 복잡
- 서버, 클러스터 장비 등에 사용
- ex) Linux, Unix, Windows server, …
동시 실행 프로세스 수에 따른 구분
단일 작업 (Single-Tasking System)
- 시스템 내에 하나의 작업(프로세스)만 수행
- 하나의 프로그램 끝나면 다음 프로그램 실행
- 완전 초창기 OS 구조
다중 작업 (Multi-Tasking System)
- 동시에 여러 작업(프로세스) 수행 가능
- 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
- ex) Unix/Linux, Windows, …
작업 수행 방식에 따른 구분
Time-Sharing Systems (시분할 시스템)
전체 시스템 구조 | CPU 구조 |
---|---|
- 1960s ~ 1970s 방식
- 여러 사용자가 자원을 동시에 사용
- 각 사용자는 단말기(CRT terminal)를 통해 대화형 작업 처리 가능 (당시에는 획기적인 아이디어)
- 장점 : 응답시간 단축 & 생산성 향상(프로세서 노는 시간 감소)
- 단점 : 비용 증가 & 개인 사용자 체감 속도 저하
Personal Computing 등장
- 개인이 시스템 전체 독점
- CPU 활용률(utilization)은 더 이상 고려의 대상이 아님
- OS가 상대적으로 단순함 (그래도 다양한 지원 기능 있음)
Parallel Processing Systems
- 동시에 둘 이상의 프로세서 사용
- 메모리 등의 자원 공유 (Tightly-coupled system)
- 성능 향상 & 신뢰성 향상 (하나가 고장나도 정상 동작 가능)
- 프로세서간 관계 및 역할 관리 필요
Distributed Processing Systems
전체 시스템 구조 | 서버 관리 |
---|---|
- 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)
- 물리적인 분산, 통신망 이용한 상호 연결
- 각 구성 요소들 사이의 독립성 유지, 공동작업 가능
- ex) Cluster system, client-server system, P2P, …
- 장점 : 자원 공유를 통한 높은 성능, 높은 신뢰성 & 확장성
- 단점 : 구축 및 관리 어려움
Real-Time Systems
- 작업 처리에 제한시간(deadline)을 갖는 시스템
- 자원 관리의 효율성보다 시간 관리가 더 중요한 경우
- 발전소 제어 & 무기 제어 …
- 동영상 스트림 등
🔧 운영체제의 구조
- 커널 (Kernel)
- OS의 핵심 부분
- 메모리 상주 (항상 켜져있는 프로그램)
- 프로세서, 메모리 관리 등 가장 빈번하게 사옹되는 기능들 담당
- 유틸리티 (Utility)
- kernel 제외한 나머지 부분
- 비상주 프로그램
- UI등 서비스 프로그램
단일 구조
- 장점
- 커널 내 모듈간 직접 통신
- 효율적 자원 관리 및 사용
- 단점
- 커널의 거대화
- 오류 및 버그 수정, 추가 기능 구현 등 유지보수 어려움
- 한 모듈에 문제가 생기면 전체 시스템에 영향
계층 구조
- 장점
- 모듈화
- 설계 및 구현 단순화
- 계층간 검증 및 수정 (유지보수) 용이
- 단점
- 단일구조 대비 성능 저하
- 불필요한 계층을 거쳐야 할 수 있음
마이크로 커널 구조
- 커널의 크기 최소화
- 필수 기능만 포함
- 사용자가 직접 관리하세요
🔧 운영체제의 기능
- 프로세스 관리
- 프로세서 관리
- 메모리 관리
- 파일 관리
- 입출력 관리
- 보조기억장치 및 기타 주변장치 관리
중요한 기능
- 프로세스 관리
- Process : 커널에 등록된 실행 돤위 (실행 중인 프로그램)
- 프로세스간 통신 및 동기화(synchronization)
- 교착상태(deadlock) 해결
- 프로세스 정보 관리 - PCB (process control bloc)
- 프로세서 관리
- 프로세스 스케줄링(scheduling) : 프로세스 처리 순서 결정
- 프로세스들에 프로세서 할당 (여러개의 프로세서 존재)
- 메모리 관리
- 프로세스에 대한 메모리 할당 및 회수
- 각 프로세스에 할당된 메모리 접근 보호
- 메모리 할당 방법(scheme) 관리
기타 기능
- Networking
- Security and Procection system
- Command interpreter system
- System call interface
- 응용프로그램과 OS 사이의 인터페이스
댓글 남기기