1. 운영체제 역할
2. 컴퓨터 시스템의 구성
3. 운영체제의 구분
3.1 동시 사용자 수
3.2 동시 실행 프로세스 수
3.3 작업 수행 방식
- 순차 처리
운영체제가 존재하지 않기에 하드웨어를 사용자가 직접 관리해야 했었음. 실행하는 작업 별로 순차 처리가 이루어지기에 각각의 작업에 대한 준비 시간이 소요된다.
- Batch System
작업들을 모아놓았다가 한번에 처리하는 방법. 시스템은 중앙에서 관리 및 운영하였다. 시스템 지향적, 즉 시스템을 효율적을 이용할 수 있다는 특징이 있다. 많은 사용자가 시스템 자원을 공유할 수 있지만 같은 유형의 작업들이 모이기를 기다려야 한다는 점에서 생산성이 저하된다는 단점이 있다.
- Time sharing system (시분할 시스템)
실행 시간을 나눈 시스템. 여러 사용자가 자원을 동시에 사용할 수 있다. 이때 파일 시스템 및 가상 메모리 관리가 등장하였다. 응답 시간이 단축되어 생산성이 향상되지만 통신 비용이 증가함과 시스템 부하에 따른 개인 사용자의 체감 속도 저하가 발생한다.
- Personal Computing
개인이 시스템 전체를 독점한다는, 이전과 비교하여 가장 큰 차이점을 갖는다. CPU 사용율을 고려할 필요없다는 편리함과 빠른 응답시간을 갖지만 성능이 낮다는 단점이 있다.
- Parallel processing system
병렬처리. 단일 시스템 내부에서 둘 이상의 프로세서를 사용하는 방법. 기억장치와 주변장치가 시스템 버스를 통해 여러 프로세서를 공유한다. cpu 하나가 고장난다 하여도 다른 것을 통해 동작이 가능하다 == 신뢰성 향상.
- distributed processing system
컴퓨터를 여럿 연결하는 방법. 네트워크를 사용한다. 분산처리 시스템. 슈퍼컴퓨터 및 클라우드 컴퓨터를 예로 들 수 있다. 높은 성능과 고 신뢰성의 장점이 있지만 구축 및 관리가 어렵다.
- Real-time system
실시간 시스템. 작업 처리에 제한 시간이 주어진 시스템이다. 예를 들어 발전소 시스템을 예로 들어보자. 시간별 온도를 감지한다고 했을 때 이는 real-time sys라고 할 수 있다.
4. 운영체제의 구조
-
커널
os의 핵심 부분으로 영문으로는 알맹이 라는 의미를 갖는다. 가장 빈번하게 사용되는 기능, 예를 들어 프로세서와 메모리 관리를 한다.
-
유틸리티
운영 체제를 제외한 부분. UI등 서비스 프로그램과 비상주 프로그램으로 필요한 순간에 메모리에 올려 실행된다.
-
시스템 콜 : 커널에게 무언가를 요청하는 통로
4.1 단일 구조
커널 내부에 모든 모듈을 탑재. 이들 사이에 직접적인 통신이 가능하기에 효율적 자원 관리가 가능하다는 장점이 있다. 하지만 기능이 추가될수록 오류 및 버그, 추가 기능 구현 등 유지보수가 어렵다는 단점이 있다. 또한 한 모듈의 문제가 전체 시스템에 영향을 줄 수 있다. (예, 악성코드)
4.2 계층 구조
커널 영역을 계층 별로 나누어 설계와 구현을 단순화 한다. 그러나 기능 수행을 위해 여러 계층을 거쳐야 하기에 성능이 저하된다는 단점이 있다.
4.3 마이크로 커널 구조
커널에 필수 기능만 담는 구조. 메모리 관리, 프로세스 통신 및 관리처럼 필수적인 요소만 커널에 탑재하는 방법.
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