Process Description and Control 1

sanghoon·2021년 4월 11일
0

운영체제

목록 보기
5/7

OS 수업 정리


Terminologies

Process and program

Program 디스크에 저장되어있는 passive 상태의 entity.
Process exectuion sequence에 올려져 있는 active 상태의 entity. 실행 중인 or 실행 가능한 entity.
  • Program이 메인 메모리에 올려질 때 process가 됨.
  • 하나의 program이 여러 process가 될 수 있음.(ex. 동일 프로그램이 여러 사용자에 의해 실행중인 경우)
  • Essential elements of process
    • 프로그램의 code( -> algorithm)
    • code와 연관된 data 집합( -> data structure)
  • Job, task, process는 OS에서는 동일한 의미로 사용됨(Although they have somewhat different terminological histories).

C program의 memory layout


-> read(3)과 read(2)는 Stack frame이 다름(return address, 전달인자, 지역변수, 리턴값이 다름)

Stack and stack implementation

  • Call stack
    execution sequence를 관리하기 위한 자료구조. execution stack, control stack, run-time stack(or just "stack")이라고도 불린다. processor가 call을 했을 때 실행되고있던 곳 다음의 주소(return address)를 stack에 push한다.
  • Implementation of stack
    • Stack Pointer
      stack base와 stack limit 사이의 값을 가질 수 있다. 현재 대부분의 프로세서는 높은 주소에서 낮은 주소로 자라는 stack을 가지고 있음.
    • Stack includes not only 'return address'
      호출된 procedure의 return address 뿐만 아니라, parameters와 return parameters또한 push됨. return parameters는 return address 밑에 위치하며, 이들을 Stack frame(= activation records, activation frame)이라 한다.

Process Description

Process description은 process context라고도 한다.

  • System-level context
    OS가 프로세스를 관리하기 위해 필요로하는 모든 정보를 의미함. 이들은 PCB에 저장되어 있다.
    • PCB(Process control block)
      • Process identification(process id)
      • Processor state information(HW/register)
      • Process control information
  • User-level context
    유저 프로그램의 기초 정보를 의미함(user text, user data, user stack). Memory context, runtime context라고도 불린다.
  • Hardware context
    레지스터들에 저장되어있는 값.(PC, SP, PSW 등과 범용 레지스터들의 정보)

Process Image and Process Control Block

Process Image

OS가 프로세스를 관리하고 통제하기 위해 필요한 정보를 의미. PCB뿐만 아니라 process가 실행되는 위치 주소를 포함하는 개념이다.
[표] four elements of a process image

Program code (or text)The program instructions to be executed. Note that it is not necessary for the processor to read the totality of a process into physical memory when a program is run, instead by a procedure known as ?dynamic paging? the next block of instructions is loaded as required and may be shared between processes.
Program dataMay be distinguished as initialised variables including external global and static variables, uninitialised variables (known as a bss area on Unix derivative systems). Data blocks are not shared between processes by default.
StackA process will commonly have at least two last-in, first-out (LIFO) stacks, including a user stack for user mode and a kernel stack for kernel mode
Process Control BlockInformation needed by the operating system to control the process.


Process Control Block

  • Process identification
    현재 process의 id, parent process의 id, User id 등

  • Processor state information
    register의 정보

  • Process control information
    Scheduling(우선순위 등)과 상태 정보. wait list 등

    -> multiprocessing을 가능케 함

Process States

프로세스의 상태에 대한 예시

위 사진으로부터 알 수 있는 사실
1. process 전환 과정에는 항상 kernel code가 존재한다.(process swith needs mode switch)
2. interrupt와 system call, exeiption이 일어타야 process switch가 발생.

위와 같은 process 전환 과정을 나타내기 위해 여러 model들이 존재함.

Two-state process model

process의 상태를 실행중이거나 실행되지 않고있거나 둘 중 하나로 보는 model

Five-state process model

위 모델에서 not running 상태를 ready와 blocked(or waiting) 상태로 나눈 model.

Suspended process

다섯가지의 상태로 해결할 수 없는 문제(한정된 메모리)를 해결하기 위해 등장한 개념. 새 process가 load될 때 메모리에 있는 process를 일부 보조기억장치로 이동시키는데(swapping), 이때 kicked out된 process를 suspended process라 한다.
일반적으로 blocked process를 먼제 내보내기는 하나, 여러 요소들에 따라 우선순위는 달라질 수 있다.

Seven-state process model

위 개념들에서 등장한 여러 queue들을 위한 자료구조 Process List Structures가 등장함.

Process List Structures


20.04.11 process description 전까지 완료
20.04.14 전체 다 완료

0개의 댓글