- 운영체제: 컴퓨터 하드웨어 바로 위 설치
- 운영체제의 구성(요소)/알고리즘의 핵심 부분/역할
운영체제(Operating System)란?
- 컴퓨터 하드웨어 정보 몰라도 쉽게 사용
- 컴퓨터 시스템 자원 효율 관리(메모리/하드웨어 관리) ⭐
- (과거) 1프로그램:1컴퓨터 → (현재) 여러 프로그램:1컴퓨터
- 여러 프로그램 ← Proxy(운영체제) → 컴퓨터(하드웨어)
컴퓨터 시스템 자원 효율 관리하는 운영체제
- 리소스(CPU/메모리/IO장치) 효율 분배
- 1GB = 2^30 → 초당 10억번 CPU의 클락
- 클락: CPU가 동작하는 기준이 되는 시간 신호(a.k.a컴퓨터가 일하는 리듬)/for 명령어 실행과 데이터 처리
- 초당 CPU가 기계어를 10억개씩 처리한다.
- 메모리는 CPU의 작업 공간
컴퓨터 시스템의 구조

- 컴퓨터 부팅: 운영체제가 메모리 위에 올라가서 실행이 된다.
- 운영체제 중 핵심적인 부분 “커널”
- CPU의 작업 공간은 메모리
- CPU는 매 클락마다 메모리 어딘가에 있는 기계어 읽어서 연산 → 읽는 메모리 위치에 따라 어느 프로그램이 실행되는지 알 수 있음
- IF 프로그램 중 디스크 내용 읽어서 실행해야하는 경우가 있다
- CPU가 직접 외부장치 접근X
- I/O디바이스는 I/O디바이스 전담하는 작은 CPU붙어있음(I/O controller)
- CPU: 야 I/O controller야. 좀 읽어와주라 네가! → 메모리에 올라온 걸 가져다가 올려놓음
운영체제의 기능
- CPU 스케줄링(어떤 프로그램에게 CPU 사용권 줄까?)
- 메모리 관리
- 디스크 스케줄링
- 사실 대단히 느린 장치
- 순서대로 처리하는 건 사실 굉장히 비효율적(a.k.a. 엘리베이터 스케줄링)
- 인터럽트, 캐싱(for 빠른 CPU와 느린 I/O장치 간 속도차를 극복)
- 캐싱: 동일한 파일 읽기 요청시, 2번 시도 → 비효율적
- 인터럽트: A프로그램이 긴 I/O작업 → CPU는 B프로그램 실행 → A프로그램 완료 → CPU의 인터럽트(가로채기)
- CPU는 매 기계어 실행 후, 인터럽트 체크를 한다.
프로세스의 상태

- 사람이 키보드 두드림 → Interrupt 발생 → CPU가 운영체제에게 넘어감 → 운영체제는 키보드에 입력된 데이터를 메모리에 카피 → 모니터에 두드린 데이터가 들어갈 수 있게 동작
- I/O작업없이, CPU만 굉장히 오래 쓰는 Science Application 작업도 있다.
댓글