컴퓨터 시스템 (폰노이만 컴퓨터의 기본적인 구조)
- 프로세서(CPU)와 메모리(OS, Program) 그리고 Bus 형식으로 이어져 있는 I/O Controller로 구성된다.
- OS는 비휘발성 보조기억장치에 저장되어 있다.
- 프로그램이 실행되기 위해선 주기억장치로 복사 / 호출되어야 한다.
- 커널(Kernel) : 운영체제의 기능 중 항상 주기억장치에 상주하는 요소들을 의미한다. 본 강의에서는 넓은 범위의 ‘운영체제’로 이해하면 된다.
컴퓨터의 역사와 처리 방식
- Serial Processing
- 사람에 의해 Operating되는 초기 운용 방식
- Simple Batch Systems (단순 일괄 처리 방식)
- Monitor Software의 등장
- 마그네틱 카드로 이루어져 있는 일련의 프로그램의 묶음을 차례차례 메모리에 넣어서 실행.
- 초창기 형태의 운영체제
- Process Scheduling
- 다음 프로그램 중 우선도를 따져 먼저 실행시킬 프로그램을 결정.
- Uni Programming
- 메모리에 들어오는 프로그램을 순서대로 하나씩 처리. 먼저 들어온 프로그램이 완전히 끝나야 CPU는 다음 프로그램을 처리할 수 있음.
- CPU라는 비싼 리소스를 효율적으로 사용하지 못함.
- Multi Programming
- 프로그램이 대기 중일 때 메모리 내에 존재하는 다른 프로그램을 처리할 수 있음.
- CPU의 활용도(Utilization) 증가 → 큰 메인 메모리 용량 요구
- 처리시간이 오래 걸리는 프로그램의 활용에 적합 (여러 개 모아서) → 일괄 처리 (Batch Process, Background Process)
- Better Throughput : 단위 시간 당 처리하는 프로그램의 수. 상대적으로 Time Sharing System보다 높음.
- 큐 영역에 모이게 되는데, 자세한 건 다음 주차에
- Time Sharing System
- Multi Programming 개념의 확장
- Time Slice, Time Quantum : 일정한 시간마다 번갈아가며 프로그램을 교체시켜 처리. 보통은 100msec을 기준으로 함 → 평균 반응 시간의 축소 (Response Time)
- 그 텀이 너무 짧기 때문에 병렬 처리된 것 처럼 느껴짐.
- Context Switch
- Symmetric Multiprocessing (SMP)
- 각 CPU들이 같은 성격의 일을 처리함. (대칭)
- 메인메모리에 위치한 OS가 CPU들에게 할 일을 지시.
- 혼동 주의
- Multi Programming : 하나의 CPU가 복수의 프로그램을 처리.
- Multi Processing : OS가 복수의 CPU에게 일을 할당하여 동시에 처리.
운영체제의 요소
- 프로세스 관리 (Process Management) : 컴퓨터 내에서 프로그램을 직접 실행하는 데 관련된 기능.
- 주 기억장치 (Main Memory Management) : 메모리 공간을 프로그램에게 할당하고 회수.
- 파일 관리 (File Management) : 파일을 보조기억장치 내에 저장하고, 운영하는 기능들의 집합.
- I/O Management : 입출력 장치 관리.
- 보조 기억장치
- 보안
- 네트워킹
- 분산 시스템 : 네트워크를 통해 서로 다른 시스템들을 연결하여 하나의 커다란 시스템으로 보는 것을 말한다. 분산 시스템은 여러 대의 컴퓨터를 하나의 시스템처럼 다루기 때문에, 자원 공유, 병렬 처리 등의 이점을 가져올 수 있다.
- 명령 해석 (Command Interpreter System)
- 터미널이나 GUI 방식으로 구성되어 있음.
- 사람 → 프로그램 단계에서의 명령도 있지만, 프로그램 → 운영체제 단계에서의 명령 또한 존재한다. 이를 System Call이라고 함.
DSCU (CNU) 운영체제 과목을 수강 후 복습하면서 정리한 강의 요약본입니다.