시스템 콜 & PCB & Context Switching

숭이·2021년 5월 19일
0

OS

목록 보기
5/11

시스템 콜(System Call)

  • 운영체제는 커널모드와 사용자모드로 나뉘어 구동함
  1. 사용자모드
    • 프로그램의 자원에 함부로 침범하지 못하는 모드
    • 코드의 작성, 프로세스 실행 등의 간단한 행동을 할 수 있다.
  1. 커널모드
    • 모든 자원(드라이버, 메모리, CPU)에 접근, 명령할 수 있음
    • 유저모드와는 다르게 컴퓨터 내부의 모든 행동이 가능
  • 사용자는 일반적으로 사용자모드를 사용함. 하지만 커널모드에 접근하고 싶은 경우 사용자 프로세스가 소프트웨어 인터럽트를 통해 운영체제에게 시스템 콜을 하여 커널기능을 사용할 수 있음

-> 시스템 콜 : 커널모드와 사용자 모드의 인터페이스 역할

PCB

  • PCB(Process Control Block) : 운영체제의 프로세스 스케줄링을 위해 프로세스의 상태 정보를 저장하는 구조체
  • CPU는 프로세스가 여러개 있을 때 Process Management를 통해서 스케줄링을 실행. 이때 각각의 프로세스를 구별하기 위해 Process Metadata를 통해 프로세스들을 구별한다.
  • Process Metadata를 저장하는 공간이 PCB!!
    -> 프로세스가 생성될 때 마다 고유의 정보가 PCB에 저장되고 프로세스가 완료되면 PCB에서 해당 프로세스의 정보를 제거한다.
  • Process Metadata의 정보
    Process ID
    Process State
    Process Priority
    CPU Registers
    Owner
    CPU Usage
    * Memory Usage
  • PCB가 필요한 이유
    -> CPU에서 프로세스의 교체작업이 이루어질 때 프로세스에 대한 저장값을 PCB에 저장.
    -> 각 프로세스에 대한 정보를 저장하므로써 프로세스들을 구별하고, 프로세스의 작업상태를 저장하는 과정을 통해 작업을 이어서 수행할 수 있다.

Context Switching

  • CPU가 이전 프로세스의 상태를 PCB에 저장하고 현재 실행하려는 프로세스의 정보를 PCB에서 읽어오고 레지스터에 적재하는 과정
  • 보통 인터럽트가 발생하거나 실행중인 프로세스가 할당받은 시간이 초과되면 발생
  • Context Switching이 이루어지는 동안 CPU는 작업을 하지 못하지므로 Context Switching이 빈번하면 오버헤드가 발생하여 효율이 떨어진다.

0개의 댓글