프로세스

Fruit·2023년 4월 10일

Hello Temp!

목록 보기
2/4
post-thumbnail

🌸 프로세스

  • 현재 실행 중인 프로그램
  • 프로세스 제어 블록(PCB)을 가진 프로그램
  • 실행 가능한 프로그램
상태설명
생성
Creation
‧ OS가 보조기억장치에 저장된 프로그램을 선택하면 해당 프로그램의 PCB 생성
‧ 생성된 프로세스는 준비 상태가 되어 준비 리스트 맨 마지막에 위치
소멸
Destroy
‧ PCB를 회수하고 프로세스를 제거
‧ 부모 프로세스가 없어지면 자식 프로세스는 자동으로 소멸
일시 정지
Suspend
‧ 수행하던 작업을 멈추고 대기하는 경우
‧ 윈도우 창이 옅은 색으로 변경됨
‧ 일시정지준비(Suspend Ready), 일시정지보류(Suspend Blocked)
재시작
Resume
일시정지 상태인 프로세스가 이전 상태로 돌아가는 것
대기(보류)와
재동작
대기 상태의 프로세스는 대기 원인이 없어지면 재동작 함




🌿 독립 프로세스

  • 다른 프로세스의 영향을 받지도, 주지도 않는다.

💧 특징

  • 프로세스의 상태는 다른 프로세스에 의해 공유되지 않는다.
  • 프로세스 실행 결과는 입력 상태에 의해서만 결정된다.
  • 프로세스 실행 결과는 같은 입력에 대해서 항상 동일하다.
  • 다른 프로세스와 무관하게 중단 및 재시작이 가능하다.


🌿 교착 상태

두 개 이상의 프로세스(서)가 상대 프로세스(서)가 차지하고 있는 자원을 기다리는 무한 대기 상태이다.


💧 교착 상태에 빠지는 조건

교착 상태 조건설명
상호 배제한 자원(리소스)은 한 번에 한 프로세스만이 사용할 수 있다.
점유와 대기어떤 프로세스가 하나 이상의 자원을 점유하고 있으면서 다른 프로세스가 가지고 있는 자원을 기다리고 있다.
비선점이미 할당된 자원은 강제로 빼앗을 수 없다.
환형/순환 대기대기 프로세스가 순환 형태로 리소스를 대기하고 있다.
이전/다음 프로세스가 요청하는 자원을 점유하고, 다음/이전 프로세스가 점유하고 있는 자원을 요구한다.

💧 교착 예방 방법

교착 상태 예방설명
점유와 대기각 프로세스는 필요한 자원들을 모두 한꺼번에 요구하고,
시스템이 요구를 허용할 때까지 작업을 보류한다.
비선점프로세스가 할당받을 수 없는 자원을 요청하는 경우,
기존에 가지고 있던 자원을 모두 반납하고 새 자원과 이전 자원을 얻기 위해 대기한다.
환형 대기자원에 고유한 번호를 할당하고, 번호 순서대로 자원을 요청(점유)한다.




🌸 프로세스 상태 전이

준비 → 실행 → 블록 → 준비

상태설명
디스패치
Dispatch
준비 상태의 프로세스 중 우선순위가 높은 프로세스에게 프로세서를 할당
할당시간 만료
Time Runout
할당 시간이 만료되어 프로세서를 할당 받기를 기다리는 준비 상태로 변경
보류/대기
Blocked/Wait
‧ 실행 상태의 프로세스에게 I/O가 발생 시,
    프로세서를 잠시 다른 프로세스에게 넘기고 해당 프로세스는 보류 상태로 전환
‧ I/O가 종료되어 완료 신호를 만나면 준비 상태로 변경




🌸 PCB (Process Control Block)

  • OS가 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블이다.
  • OS에게 프로세스 관리를 위한 정보를 제공한다.
  • 모든 프로세스는 각각 고유의 PCB를 가진다.
  • 프로세스 디스크립터(Process Descriptor)라고도 한다.
  • 프로세스 생성 시 생성되고 프로세스가 종료될 때 함께 제거된다.

❗ 저장되는 정보

  • 프로세스의 현재 상태, 고유 식별자, 이름, 우선순위
  • 메모리 주소, 할당된 자원 목록, IP(PC) 정보, 주기억장치 정보
  • 프로세스가 적재된 기억장치의 부분을 가리킨 포인터 정보
  • CPU 스케줄링 정보

CPU 스케줄링 정보 : 프로세스 우선순위, 스케줄 큐에 대한 포인터 매개변수를 포함한다.




profile
🌼인생 참 🌻꽃🌻 같다🌼

0개의 댓글