운영체제 2강

·2023년 4월 4일

운영체제

목록 보기
2/2
post-thumbnail

https://yozm.wishket.com/magazine/detail/1269/
소프트웨어는 레스토랑으로 떠나보자..

프로세스

Process is a program in execvution

1. 프로세스의 문맥(context)

  1. CPU 수행상태를 나타내는 하드웨어 문맥

    • program Counter
    • 각종 register

    프로세스는 CPU를 잡고 매 순간 instruption(기계어)를 실행한다.
    현재 시점에 이 프로세스가 이 기계어를 어디까지 실행했는가를 알기 위해 레지스터에 어떤 값을 저 장했고, PC(program counter)가 어디를 가리키고 있는가? 등..
    주로 register가 어떤 값을 갖고 있는가를 나타낸다.

  2. 프로세스의 독자적인 주소 공간

    • code, data, stack

      현 시점에 code, data, stack에 어떤 내용이 들어있는가?

  3. 프로세스 관련 커널 자료 구조

    • PBC(Process Control Block)
    • Kernel stack

      PCB : 프로세스가 하나 생길 때마다, 운영체제는 그 프로세스를 관리하기 위해 자신의 데이타 영역에 자료구조를 하나 두게됨. 얘한테 CPU, 메모리 얼마나 줘야됨? 잘 돌고 있는거임? 등등의 관리
      Kernel stack : 프로세스가 돌다가 code에서 이거 제가 못해여 해주셈 system call 하는 상황 -> 커널 주소공간을 가리키게 되어 커널의 code를 수행 -> stack에 관련 정보 쌓아. 이 커널 주소공간은 프로세스들에게 공유되고 있슴 그래서 누가 호출해서 뭘 쌓았는지 개별로 관리 해줘야댐 그래서 이 커널의 stack은 프로세스마다 다르게 이루어져있다함

엥 근데 이거 왜함?
이 프로세스의 현상태(문맥)을 백업 안해두면, 다음 CPU를 잡았을 때 니 어데고... 첨부터 실행하는 개 비효율적인 컴퓨터 완성이므로

2. 프로세스의 상태

  1. 프로세스는 상태가 변경되며 수행된다
    • Running
      - CPU를 잡고 instruction을 수행중인 상태
    • Ready
      - CPU를 기다리는 상태(메모리 등 다른 조건들을 모두 만족하고)

      CPU는 하나인데 다수의 프로세스들이 나 주셈 나 쓸거임 하고 기다려 준비 끝났고 CPU만 있으면 instruction 수행 가넝한
      time sharing에서는 이 ready 상태의 프로세스들이 CPU를 잡았다 놨다 와리가리 치는 방식

    • Blocked(wait, sleep)
      - CPU를 줘도 당장 instruction 수행 불가
      • 프로세스 자신이 요청한 event(예 : I/O)가 즉시 만족되지 않아 이를 기다리는 상태
      • 예) 디스크에서 file을 읽어와야 하는 경우

추가
- New : 프로세스가 생성중인 상태
- Terminated : 수행이 끝난 상태. 할 일은 끝났는데 정리하는 작업중..

3. Process Control Block (PCB)

  1. PCB
  • 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
  • 다음의 구성요소를 가진다(구조체로 유지)
    1. OS가 관리상 사용하는 정보
    • Process state, Process ID
    • scheduling information, priority
    1. CPU 수행 관련 하드웨어 값
    • Program counter, register
    1. 메모리 관련
    • Code, data, stack의 위치 정보
    1. 파일 관련
    • Open file descriptors...
profile
어?머지?

0개의 댓글