CS 공부/운영체제

운영체제의 구조

moo.choi 2020. 12. 17. 16:29

운영체제의 구조

OS Structure

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