본문 바로가기
Computer Science/OS

직무면접을 위한 공룡책 OS ch.3

by 수제햄버거 2020. 10. 29.
728x90
반응형

Process State

  • 처음 생성되면 new, 할당 대기중엔 ready, 실행될때 running, 종료될때 terminated, 완료되어 입출력 기다릴땐 waiting

PCB(Process Control Block)

  • 각각의 프로세스는 자신만의 PCB(정보 묶음)을 가지고 있다. PCB에는 프로세스 상태, 프로그램 카운터, 메모리 한계, 레지스터 정보 등이 담겨있다.
  • CPU Switch : 프로세서가 실행되는 중에 인터럽트가 발생해서 운영체제가 개입하여 프로세서에 할당된 프로세스를 바꾸는 행위 (시스템 콜을 사용해야하는 경우 프로세스가 자체적으로 처리할 수 없어서 운영체제가 개입해야 한다.)

Threads

  • 프로세스를 쪼개 하나의 프로세스 안에서 동시의 여러 작업을 처리할 수 있도록 한다.(ch5의 내용)

Process Scheduling

  • Long-term 스케쥴러 : Ready queue 에 프로세스를 옮김
  • Short-term 스케쥴러 : 프로세스를 프로세서에 할당함

Context Switch

  • 프로세서가 다른 프로세서로 스위치할 때, 작업중이던 프로세서 상태를 저장하고 새로운 프로세서 상태를 로드 하는 것

Process Creation

  • 프로세스는 트리 구조로 되어 있다. 부모 프로세스가 자식 프로세서를 만들고 PCB에 저장되어 있는 pid값으로 프로세스를 식별한다.

Process Termination

  • 부모 프로세스가 자식 프로세스 보다 먼저 종료되면 자식은 그 상위 프로세서를 부모로 본다.
  • 자식 프로세서가 종료되었는데 부모가 자식이 반환한 정보를 회쉬 하지 않으면 자식 프로세스는 종료되었음에도 정보가 메모리에 남아있는 좀비 프로세스가 된다.

IPC(Interprocess Communication)

  • 메시지 패싱(Message passing) 커널을 통해 정보를 전달, 커널에 접근해 정보를 수신 → 컨텍스트 스위치가 발생해서 속도가 느리다. 하지만 구현은 쉽다.
  • 공유 메모리(Shared Memory) 특정 메모리 공간에서 두 프로세스가 함께 사용하며 정보를 주고 받는다. → 커널을 거치지않아서 속도가 빠르지만 동시 접근(충돌,Producer-Consumer Problem)을 막기 위한 구현이 따로 필요하다.(Buffer을 이용하면 어느정도 해결이 가능하다.)
  • Synchronization 메시지 패싱의 동기화 문제를 해결하귀 위한 blocking, non-blocking 방식 사용
    • Blocking: 행동 할 때까지 blcok
    • Non-Blocking: 행동 하고 자기 할일 한다.

Sockets

  • 서버와 클라이언트가 통신하는 방식, IP주소와 포트 정보가 있으면 클라이언트는 네트워크를 통해 서버 프로세스에 접근 가능

Pipes

  • 부모프로세스 와 자식 프로세스가 통신할때 사용하는 방식, 단방향 통신만 가능하기때문에 양방향으로 하려면 두 개가 필요하다.

 

 

Keyword Reviews:

Process state/

PCB/

Threads/

Process Scheduling/

Context Switch , CPU Switch/

Porcess Creation/

Process Termination/

IPC/

Sockets, Pipes

 

출처 : parksb.github.io/article/7.html

 

🦕 공룡책으로 정리하는 운영체제 Ch.3

Process Concept

parksb.github.io

 

반응형

'Computer Science > OS' 카테고리의 다른 글

Python Programming 요약  (0) 2022.06.09
직무면접을 위한 공룡책 OS ch.4  (0) 2020.11.10
직무면접을 위한 공룡책 OS ch.1  (0) 2020.10.28