ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] - System call / PCB
    CS/면접준비 2022. 9. 29. 16:37

    System call


    fork()

    • Process create시 생성되며, Parent Process가 Child Process를 생성한다.

     

    exec()

    • Process Create 이후에 사용 가능하며, Process를 실행할 수 있다.

     

    wait()

    • Child Process가 실행될 때 까지 대기하는 상태로 Parent는 동작이 불가하다.

     

    Process Management


    프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함

    이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함

    프로세스들의 특징을 갖고있는 것이 바로 Process Metadata

    • Process Metadata
      • Process ID
      • Process State
      • Process Priority
      • CPU Registers
      • Owner
      • CPU Usage
      • Memeory Usage

     

    PCB(Process Control Block)


    process metadata를 저장해둔 곳으로 하나의 Process 정보가 들어있다.

    • Program이 Process로 실행되는 경우 생성된다.
    • Process는 PCB, Heap,Data,Stack,Code로 구성된다.

     

    • Program 실행 -> Process Create(Fork) -> Process address space(heap,data,stack,code) create -> PCB 저장

    PCB 필요성

    • CPU는 Process state에 따라 교체 작업이 이루어진다.
    • Interrupt 발생 -> Waiting -> 다른 Process Running 되기 때문에, 이 때 다시 수행할 Process 정보를 저장해야 한다.

     

    PCB 관리

    • Linked-list 형태로 관리한다.
    • PCB list-head에 PCB들이 붙게 되며, 주소 값으로 연결 되어 있는 연결리스트로 삽입 삭제 용이
    • Process 생성 시 PCB가 생성되며 완료 시 제거 된다.

     

    Context-Swithcing

    CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정
    • 보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 Context Switching이 발생
    • 즉, 프로세스가 Ready → Running, Running → Ready, Running → Waiting처럼 상태 변경 시 발생

    'CS > 면접준비' 카테고리의 다른 글

    [OS] - CPU Scheduling  (0) 2022.09.29
    [OS] - IPC  (0) 2022.09.29
    [OS] - Interrupt  (0) 2022.09.29
    [OS] - Process vs Thread  (1) 2022.09.29
    [Database] - Join  (1) 2022.09.21

    댓글

Designed by Tistory.