1. 운영체제 역할
2. 컴퓨터 시스템의 구성
3. 운영체제의 구분
3.1 동시 사용자 수
3.2 동시 실행 프로세스 수
3.3 작업 수행 방식
- 순차 처리
운영체제가 존재하지 않기에 하드웨어를 사용자가 직접 관리해야 했었음. 실행하는 작업 별로 순차 처리가 이루어지기에 각각의 작업에 대한 준비 시간이 소요된다.
- Batch System
작업들을 모아놓았다가 한번에 처리하는 방법. 시스템은 중앙에서 관리 및 운영하였다. 시스템 지향적, 즉 시스템을 효율적을 이용할 수 있다는 특징이 있다. 많은 사용자가 시스템 자원을 공유할 수 있지만 같은 유형의 작업들이 모이기를 기다려야 한다는 점에서 생산성이 저하된다는 단점이 있다.
- Time sharing system (시분할 시스템)
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2F7f588305-01e7-4ace-b1f6-371e7c201cc5%2Fimage.png)
실행 시간을 나눈 시스템. 여러 사용자가 자원을 동시에 사용할 수 있다. 이때 파일 시스템 및 가상 메모리 관리가 등장하였다. 응답 시간이 단축되어 생산성이 향상되지만 통신 비용이 증가함과 시스템 부하에 따른 개인 사용자의 체감 속도 저하가 발생한다.
- Personal Computing
개인이 시스템 전체를 독점한다는, 이전과 비교하여 가장 큰 차이점을 갖는다. CPU 사용율을 고려할 필요없다는 편리함과 빠른 응답시간을 갖지만 성능이 낮다는 단점이 있다.
- Parallel processing system
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2Ffb22593a-64d9-4aef-b515-ce3ae20f5b40%2Fimage.png)
병렬처리. 단일 시스템 내부에서 둘 이상의 프로세서를 사용하는 방법. 기억장치와 주변장치가 시스템 버스를 통해 여러 프로세서를 공유한다. cpu 하나가 고장난다 하여도 다른 것을 통해 동작이 가능하다 == 신뢰성 향상.
- distributed processing system
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2F63020621-045f-461e-a4c4-8a9463416316%2Fimage.png)
컴퓨터를 여럿 연결하는 방법. 네트워크를 사용한다. 분산처리 시스템. 슈퍼컴퓨터 및 클라우드 컴퓨터를 예로 들 수 있다. 높은 성능과 고 신뢰성의 장점이 있지만 구축 및 관리가 어렵다.
- Real-time system
실시간 시스템. 작업 처리에 제한 시간이 주어진 시스템이다. 예를 들어 발전소 시스템을 예로 들어보자. 시간별 온도를 감지한다고 했을 때 이는 real-time sys라고 할 수 있다.
4. 운영체제의 구조
-
커널
os의 핵심 부분으로 영문으로는 알맹이 라는 의미를 갖는다. 가장 빈번하게 사용되는 기능, 예를 들어 프로세서와 메모리 관리를 한다.
-
유틸리티
운영 체제를 제외한 부분. UI등 서비스 프로그램과 비상주 프로그램으로 필요한 순간에 메모리에 올려 실행된다.
-
시스템 콜 : 커널에게 무언가를 요청하는 통로
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2Fdc503341-9932-409d-83ec-5d62d8e071a7%2Fimage.png)
4.1 단일 구조
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2Ffa966373-7370-41d4-9a72-ea87cad497b1%2Fimage.png)
커널 내부에 모든 모듈을 탑재. 이들 사이에 직접적인 통신이 가능하기에 효율적 자원 관리가 가능하다는 장점이 있다. 하지만 기능이 추가될수록 오류 및 버그, 추가 기능 구현 등 유지보수가 어렵다는 단점이 있다. 또한 한 모듈의 문제가 전체 시스템에 영향을 줄 수 있다. (예, 악성코드)
4.2 계층 구조
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2F0e06f527-2ef8-4ef5-9053-8e98477eca1d%2Fimage.png)
커널 영역을 계층 별로 나누어 설계와 구현을 단순화 한다. 그러나 기능 수행을 위해 여러 계층을 거쳐야 하기에 성능이 저하된다는 단점이 있다.
4.3 마이크로 커널 구조
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2F659783b7-b21d-486d-ace1-59164d1bae7e%2Fimage.png)
커널에 필수 기능만 담는 구조. 메모리 관리, 프로세스 통신 및 관리처럼 필수적인 요소만 커널에 탑재하는 방법.
5. 운영체제의 기능
5.1 Process Management
5.2 Processor Management (cpu라고 생각해도 ㄱㅊ)
- cpu 할당. process scheduling 이라고 한다.
5.3 Memory Management
- 주기억 장치 관리가 주 역할이다.
메모리를 할당 및 회수, 여유 공간 관리
그리고 프로세스의 할당 메모리 영역 접근 보호를 담당한다.
5.4 File Management
5.5 I/O Management
![](https://velog.velcdn.com/images%2Fhayeon_dev%2Fpost%2F0992d2da-479f-45bc-a93b-aa7b405749e8%2Fimage.png)