'OS Oh Yes 누워서 보는 운영체제 이야기' 정리

1 OS

  • 커널은 운영체제의 각종 기능들 중 사용자와 실행 프로그램을 위해 매우 빈번하게 사용되는 부분을 말하고 컴퓨터가 처음 부팅 될 때에 주기억 장치에 적재되어 시스템의 운영이 종료될 때까지 계속해서 주기억 장치에 남아 있게 되는 부분이다.

2 들어가기전에

  • 인터럽트는 각 자원들이 능동적으로 자신의 상태변화를 CPU 에게 알리는 방식이다. CPU 는 각자원의 상태에 대해 폴링하지 않아도 된다.

  • 인터럽트는 하드웨어장치에 의해 발생하는 하드웨어 인터럽트와 CPU 자신에게 발생시키는(실행중인 명령어에 의해) 소포트으웨어 인터럽트가 있다.

  • CPU 가 명령어 실행중 인터럽트를 받으면, 먼저 명령어를 처리한 뒤 인터럽트를 처리한다.

  • 중첩인터럽트에 대해서는 순차적으로 처리할 수도있고, 인터럽트를 중첩해서 수행할 수도 있다. 이는 인터럽트의 중요도에 따라 달라진다.

  • I/O를 CPU 개입정도로 분류하자면 아래 3가지

    • Programmed I/O: CPU는 입력을 지시한 후 워드가 컨트롤러 버퍼에 입력됐는지 계속 확인하는 방식

    • Interrupt-driven I/O: 입력을 지시한 후 워드의 입력이 이루지는 사이에 CPU는 다른 프로그램을 수행하고, 입력완료시 Interrupt 에 의해 CPU 에게 알려지는 방식

    • Direct Memory Access: 입력 버퍼의 크기에 비해 입출력할 데이터가 크면, 인터럽트 처리가 요구되는데 이 횟수를 줄이고자는 방식. 입출력을 CPU 대신 해줄수있는 별도의 Satellite Processor 가 필요하다.

    • 비고) I/O를 입출력을 위한 하드웨어 구성에 따라 Isolated, Memory-mapped 방식으로 분류하기도 함.

3 프로세스와 쓰레드