[컴퓨터 구조] 프로세스 구조

Fruit·2023년 4월 2일

📖 Hello Certificate!

목록 보기
2/24
post-thumbnail

🌸 프로세스

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




🌸 Process Control Block, PCB

  • 프로세스의 현재 상태, 이름, 우선순위, 메모리 주소, 할당된 자원 목록, IP(PC) 정보, 주기억장치 정보 등을 포함한다.
  • OS에게 프로세스 관리를 위한 정보를 제공한다.
  • 프로세스 생성 시 생성되고 프로세스가 종료될 때 함께 제거된다.



🌸 프로세스 전이 상태

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



🌸 인터럽트

  • CPU가 프로그램을 실행하고 있을 때,
    예외상황이 발생하여 처리가 필요한 경우에 CPU에게 알려 처리할 수 있도록 하는 것이다.
  • 인터럽트 처리 중 다른 인터럽트가 발생하면 우선순위에 의해 처리한다.
  • CPU가 인터럽트 신호를 받으면 프로그램 카운터(PC)에 있는 복귀주소를 메모리 스택에 저장한다.
  • 그리고 입출력 전송을 위한 인터럽트 서비스 루틴(ISR)으로 제어를 이동하는 방식으로 수행한다.

✔️ 종류

  • PC 하드웨어 인터럽트: 프린터 용지가 부족할 때 발생한다.
  • 클럭 인터럽트: 프로세스의 시간 할당량 종료와 관련있다.

✔️ 인터럽트가 발생할 상황

  • 갑작스러운 정전, 입출력기기 오류 발생, 보호된 기억 공간 접근, 프로그램 착오
  • 불법적인 인스트럭션 수행, Operator의 의도적인 조작
  • 사용자가 프로그램에서 SVC 명령을 호출, 콘솔 터미널에서 인터럽트 키를 누를 때
  • 하드웨어 상의 오류가 있을 때
profile
🌼인생 참 🌻꽃🌻 같다🌼

0개의 댓글