목차 :
1. 운영체제의 역할
2. 운영체제의 구분
3. 운영체제의 구조
4. 운영체제의 기능
1. 운영체제 역할
크게 보면 다양한 컴퓨터 리소스(자원)을 관리
운영체제의 역할
User Interface (편리성)
- CUI (Character user interface)
- GUI (Graphical User interface)
- EUCI (End-User Comfortable Interface) // 특별한 목적을 위한 OS (ex MP3)
Resource management(효율성)
- HW resource (processor, memory, I/O devices, Etc.)
- SW resource (file, application, message, signal, Etc.)
Process and Thread management (프로세스와 쓰레드 관리)
프로세스는 크게 실행의 주체라고 생각
쓰레드는 크게 조금 가벼운 프로세스라고 알고 넘어감
System management (시스템보호)
컴퓨터 시스템의 구성
- 그림에서 System call Interface 과 Kernel 을 OS라고 볼 수 있다.
- Kernel :
운영체제의 핵심 부분을 모아 놓은 곳
자세히 말하자면 하드웨어 관리 + 사용자에게 서비스를 제공하는 역할을 한다.
- System call Interface :
사용자가 직접 커널을 조작하게 된다면 문제 발생 가능성이 높아진다.
그래서 커널의 필요한 기능이 있다면 통로 역할을 하는 System Call 을 통해 기능을 제공받는다.
자세히 말하자면 커널의 기능중 사용자가 사용할 수 있는 기능들만 함수형태로 모아놓은 곳이다.
커널의 역할 및 기능 (그림)
2. 운영체제의 구분
운영체제의 구분
동시 사용자 수
- Single-user system
- Muti-user system
동시 실행 프로세스 수
- Single-tasking system
- Multi-tasking system (Multiprogramming system)
작업 수행 방식 (사용자가 느끼는 사용 환경)
- Batch processing system (일괄 처리 시스템)
- Time-sharing system (시분할 시스템)
- Distributed processing system(분산처리 시스템)
- Real-time system (실시간 시스템)
동시 실행 사용자 수
단일 사용자(Single-user system)
- 한 명의 사용자만 시스템 사용 가능
- 한 명의 사용자가 모든 시스템 자원 독점
- 자원 관리 및 보호 방식이 간단 함 (장점)
- 개인용 장비(PC, mobile) 등에 사용 (ex Window 7/10, android, MS-DOS 등)
다중 사용자(Muti-user system)
- 동시에 여러 사용자들이 시스템 사용
- 각종 시스템 자원(파일 등)들에 대한 소유 권한 관리 필요
- 기본적으로 Multi-tasking 기능 필요
- OS의 기능 및 구조가 복잡
- 서버, 클러스터(cluster) 장비 등에 사용 (ex Unix, Linux, server)
동시 실행 프로세스 수
단일 작업 (Single-tasking system) // 현대에는 사용이 적음
- 시스템 내에 하나의 작업(프로세스)만 존재
- 하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행 (ex MS-DOS)
다중 작업 (Multi-tasking system)
- 동시에 여러 작업(프로세스)의 수행 가능
- 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
- 운영체제의 기능 및 구조가 복잡 (ex Unix/Linux, Window 등)
작업 수행 방식
... 나중에
3. 운영체제의 구조
크게 커널과 유틸리티로 구분 됨
커널 (Kernel)
- OS의 핵심 부분 (메모리 상주)
// 계속 사용해야하기 때문에 memory에 항상 상주해있어야만 한다.
유틸리티 (Utility)
- 비상주 프로그램
// 자주 사용하지 않으므로, 필요할 때마다 메모리에 올려서 사용하면 된다.
ex)UI 등 서비스 프로그램
단일 구조
ex) main 함수에 모든 기능을 다 구현했다고 생각
- 장점 : 커널 내 모듈간 직접 통신 -> 효율적 자원 관리 및 사용
- 단점 : 오류 및 버그, 추가 기능 구현 등 유지보수가 어려움
-> 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향 (ex 악성코드)
계층 구조
// 우리가 쓰고 있는 OS는 대부분 계층 구조 형식
- 모듈화 -> 계층 간 검증 및 수정 용의
- 설계 및 구현의 단순화 -> (각자 맡은 기능만 열심히 일하면 된다)
- 단점 : 단일 구조 대비 성능 저하 -> 원하는 기능 수행을 위해 여러 계층을 거쳐야 함
마이크로 커널 구조
- 커널의 크기 최소화 :
- 필수 기능만 포함
- 기타 기능은 사용자 영역에서 수행
4. 운영체제의 기능
- 프로세스(Process) 관리
- 프로세서(Processor) 관리 // 프로세서는 크게 CPU라고 생각
- 메모리 (Memory) 관리
- 파일 (File) 관리
- 입출력 (I/O) 관리
- 보조 기억 장치 및 기타 주변장치 관리 등