프로세스 - Stack Memory, PCB

2022. 4. 5. 16:42· CS/OS
목차
  1. Stack Memory - user level process
  2. PCB(Process Control Block) - system level process

Stack Memory - user level process

 

프로그램이 디스크에서 메모리에 올라와 실행가능해지면 프로세스

 

그러기 위해선 stack 필요 실행 순서를 정하기 위해서 excution sequence

 

 

여러 프로세스가 메모리 상에 존재하려면 프로세스마다 CPU에 데이터를 보내줄 주소가 필요한데 

CPU는 매번 작업하는 프로세스를 바꾸므로 바꾸기 전 사용했던 주소들과 레지스터 상태들을 저장할 필요가 있다.

 

 

그걸 메모리 한 곳에 존재하는 stack이란 공간에 저장하게 된다. 레지스터에 저장하기엔 공간이 부족하다. (프로세스의 리턴 address가 무한히 늘어날 수 있음, 각종 프로세스의 레지스터 상태값)

 

stack example

 

위 예시를 보면 stack에 존재하는 정보들 중 하나인 return address 관점에서 stack이 어떻게 동작하는 지 알 수 있다.

메인 함수 실행중 4101번 주소에서 Proc1이 실행되어 pro1이 종료되면 돌아갈 return address인 4101이 스택에 쌓이고 Proc1이 종료되기 전 4601번 주소에서 Proc2가 실행되서 return address인 4651이 한층 더 쌓인다. 

 

 

이런 스택을 제어하기 위한 stack pointer가 존재하고 스택이 메모리에 존재하는 다른 영역을 침범하지 않기 위한

stack base와 stack limit도 존재한다. 

 

 

PCB(Process Control Block) - system level process

 

시분할 시스템에서, 프로세는 각자 프로세서를 사용할 수 있는 시간이 정해져있고 OS는 CPU 자원을 적절한 프로세스에게 할당하거나 다시 가져와야 합니다. 

 

 

이러한 동작을 위해 OS에서 필요한 Process의 정보는 PCB(Process Control Block)에 담겨있습니다.

 

 

PCB는프로세스를 OS가 제어, 기술하기 위해 필요한 프로세스마다 가지고 있는 정보, OS에서 가장 중요한 데이터 구조

 

 

 

 

process identification - process id, user id, parent process id 등 unique한 식별자들

 

process controle information - process relation pointer(parend, child) process state(run, ready, block, ),

page(text, data, stack), scheduling(priority) 등 프로세스를 제어하는데 필요한 정보들

 

processor state information - pc, psw, stack pointer 등 프로세스가 사용하는 레지스터의 정보들

 

 

 

 

 

 

 

 

 

 

 

 

'CS > OS' 카테고리의 다른 글

Process 생성 (in unix)  (0) 2022.04.06
Process model - 프로세스 전환(process switch)  (0) 2022.04.05
OS - system call  (0) 2022.04.05
OS - time interrupt  (0) 2022.04.04
OS 시스템 - kernel의 이해(dual mode)  (0) 2022.03.26
  1. Stack Memory - user level process
  2. PCB(Process Control Block) - system level process
'CS/OS' 카테고리의 다른 글
  • Process 생성 (in unix)
  • Process model - 프로세스 전환(process switch)
  • OS - system call
  • OS - time interrupt
reko_
reko_
reko_
아무거나 기록
reko_
전체
오늘
어제
  • 분류 전체보기 (62)
    • develop (10)
      • Backend -Java (5)
      • AI Service (0)
    • CS (46)
      • DataBase (6)
      • OS (27)
      • JAVA (10)
      • Network (3)
    • ML Lecture (4)
      • Supervised Learning (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 데이터베이스 #컴퓨터공학
  • 컴퓨터공학
  • +
  • 오퍼레이팅 시스템
  • 하드웨어
  • 더

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
reko_
프로세스 - Stack Memory, PCB
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.