운영체제(OS)
- 하드웨어를 관리하는 소프트웨어로 하드웨어를 제어할 수. 있도록 인터페이스 제공
- 사용자 또는 어플리케이션은 커널을 통해서만 하드웨어를 제어 가능
운영체제의 구조
운영체제의 역할
- 하드웨어 관리
- 하드웨어 보호
- 하드웨어 인터페이스 제공(system call)-> system call은 c언어로 구성
- 사용자 인터페이스 제공(GUI/CUI
초창기 컴퓨터(1940년대)
- 진공관이 켜지면 1, 꺼지면 0으로 판단
- 운영체제는 사용X
일괄 작업 시스템(1950년대)
- 진공관과 전선으로 구성된 논리회로를 IC칩으로 구현
- CPU와 메모리가 사용
- 한 가지 작업만 실행 가능-> 여러 개의 작업을 단일 작업으로 묶어서 일괄 처리(메인 메모리에서는 한 번에 하나의 것만 실행 가능)
- 프로그램 실행 중간에 데이터 입력, 실행 과정 확인 X
- 메인 메모리는 OS 영역과 사용자 영역으로 나뉨
대화형 시스템(1960년대 초반)
- 키보드와 모니터를 통해 프로그램 실행 중간에 데이터를 입력, 실행 과정 확인 O
시분할 시스템(1960년대 후반)
- CPU 사용 시간을 잘게 쪼개서 작업들에게 나누어 줌(멀티 프로세스)
- 동시에 여러 사람이 사용 가능한 시스템(multi-user system)
분산 시스템(1970년대 후반)
- 작은 컴퓨터를 인터넷을 통해 하나로 묶어서 대형 컴퓨터의 성능에 버금가도록 구현
- 작은 컴퓨터들이 대규모 데이터 연산을 소규모 연산으로 나눠서 분산 및 병렬 처리, 내용이나 결과 교환
클라이언트/서버 시스템(1990년대~현재)
- client->request->internet->response->server
- client<-request<-internet<-response<-server
P2P 시스템(2000년대 초반~현재)
- 서버를 거치지 않고 사용자 컴퓨터들을 직접 연결하여 구현
운영체제는 커널과 어플리케이션으로 구성
커널
- 단일형 구조 커널, 계층형 구조 커널, 마이크로 구조 커널
- 하드웨어 관리
- 시스템 콜 제공
- 하드웨어 제어하는데 사용되는 프로그램인 디바이스 드라이버(커널과 하드웨어의 인터페이스) 포함
단일형 구조 커널
- 커널의 기능들이 모듈화 되어 있지 않고 하나로 구성
- 장점 - 커널의 기능들이 모듈화 되어 있지 않으므로 모듈 간의 통신 비용 X
- 단점 - 유지 보수 및 오류 처리하기 어려움, 낮은 이식성, 에러에 취약
계층형 구조 커널
- 비슷한 커널의 기능들이 하나의 모듈로 묶어서 하나의 계층을 만들고 계층 간의 통신을 통해 커널 구현
- 대부분의 운영체제
- 장점 - 유지 보수 및 오류 처리 용이
- 단점 - 커널의 크기가 커질 수 있음
마이크로 구조 커널
- 높은 이식성 제공
- 대표적인 운영체제 : macOS, iOS
하드웨어 관리
- 메모리 관리
- 프로세스 관리
- 파일 시스템 관리
- I/O 관리(입출력 장치와 저장 장치)
- IPC 관리(파이프,소켓)
어플리케이션 : 쉘 - 명령어 해석기(사용자가 입력한 명령어를 해석하여 커널에 전달)