운영체제의 구조
CPU 스케줄링
누구한테 CPU를 줄까?
단순히 들어온 시간 순서대로 CPU를 할당해주면 실행 시간이 긴 프로그램이 들어왔을 때 Blocking 현상이 발생한다.
-> 실행 시간이 짧은 것부터 처리하면 속도가 더 빨라지지 않을까?(CPU 스케줄링 개념의 시작)
최근에는 잠깐잠깐씩 할당해주며 프로그램을 실행시켜주는 방식
메모리 관리
한정된 메모리를 어떻게 쪼개어 쓰지?
메모리에 너무 많은 프로그램이 들어있으면 하나하나가 가지는 메모리 공간이 작아진다.
-> CPU에서 원할하게 프로그램을 실행시키지 못할 수 있다. (CPU에서 프로그램을 동작시키기 위해서 정해진 최소한의 메모리공간을 보장해주어야 함)
Working set model
- 너무 많은 프로그램이 동시에 실행되었을 때 일부 프로그램만 남겨두고 나머지는 메모리공간에서 지운다.
- 프로그램이 어느정도 동작이 완료되면 Disk에서 다시 받아와 실행해준다.
- 메모리에서 많이 사용되었으면 가까운 시간내에 다시 사용될 가능성이 높다고 판단해 남겨둔다.
파일 관리
디스크에 파일을 어떻게 보관하지?
- 조각조각 나눠서 관리할 지, 연속적으로 저장할 지
- 헤드가 움직이며 디스크를 관리함
- 디스크 스케줄링
- 헤드에 가까운 위치에 들어온 요청을 먼저 처리(엘리베이터와 유사하다)
입출력 관리
각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지?
CPU, Memory에 비해서 훨씬 느리다.
-> 속도차이가 많이 나는 상황에서 어떻게 효율적으로 관리할까?
인터럽티브(Interruptive)
- I/O device에서 요청을 보낼때 interrupt를 걸어주면 CPU가 동작하다가 확인 후 우선적으로 처리해준다.
프로세스 관리
소프트웨어를 어떻게 관리할 것 인지
- 프로세스의 생성과 삭제
- 자원 할당 및 반환
- 프로세스 간 협력
그 외
- 보호 시스템
- 네트워킹
- 명령어 해석기(command line interpreter
'CS 공부 > 운영체제' 카테고리의 다른 글
System Structure & Program Execution (0) | 2020.12.20 |
---|---|
운영 체제의 예 (0) | 2020.12.02 |
혼동하기 쉬운 Multi- (0) | 2020.12.02 |
운영 체제의 분류 (0) | 2020.12.02 |
Operating System (0) | 2020.12.01 |