Dazzling 개발 노트

[CS] 운영체제 - 운영체제 / 프로세스 본문

Develop

[CS] 운영체제 - 운영체제 / 프로세스

dj._.dazzling 2024. 3. 15. 09:30

운영체제 OS Operating System

한정된 자원 내에서 사용자의 요청을 최대한 빠르게 처리

 

커널 Kernel

프로세스의 보안, 자원 관리 역할

 

시스템 콜

사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행하는 시스템 함수

 

프로세스

실행중인 하나의 프로그램, 실행의 단위

 

스레드

프로세스에서 실제로 실행되는 흐름의 단위

 

PCB Process Control Block

OS가 프로세스를 제어하기 위해 저장하는 프로세스 정보

  • 프로세스 상태, PID, 부모 PID, 자식 PID, PC, 프로세스 우선순위, 메모리 제한 저장

 

동시성

  • 싱글 코어에서 여러 작업을 번갈아 처리

병렬성

  • 멀티 코어에서 각각의 작업을 동시에 처리

 

멀티 프로세스

여러 프로세스를 동시에 처리하며, 독립적인 메모리를 할당한다.

 

멀티 스레드

여러 스레드가 하나의 프로세스 내에서 여러 작업을 동시에 처리하며, 메모리와 자원을 공유

 

콘텍스트 스위칭

멀티 프로세스 환경에서 처리중인 프로세스에 인터럽트 발생 시 프로세스의 정보를 교체하는 것

 

교착상태

2개 이상의 프로세스가 각각 자원을 보유한 상태서로의 자원을 요구하며 기다리는 상태

 

교착상태가 발생하는 필요충분조건

필요충분조건에서 한 가지를 제거하면 교착상태를 막을 수 있다.

  • 상호배제 mutual exclusion
    • 하나의 공유 자원에 하나의 프로세스만 접근 가능
  • 점유와대기 hold and wait
    • 하나의 프로세스가 자원을 가진 상태에서 다른 프로세스의 자원을 기다리는 상황
    • 문제 해결 : 프로세스가 자원을 요구할 때 필요한 자원 1과 2를 모두 주거나 가진 자원이 없는 경우에만 자원을 할당하도록 함
  • 비선점 non-preemption
    • 다른 프로세스가 가진 자원을 뺏을 수 없다
    • 문제 해결 : 프로세스 1이 프로세스 2의 자원을 뺏을 수 있게 함
  • 순환대기 circular wait
    • 프로세스 1이 프로세스 2의 자원을 요구하고 프로세스 2가 프로세스 1의 자원을 요구하는 상황
    • 문제 해결 : 작은 번호 프로세스가 큰 번호 프로세스의 자원을 요구하는 것만 가능하게 함