Mathlife
Mathlife의 학습 노트
Mathlife
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • 알고리즘
      • 자료구조
      • 운영체제
      • 네트워크
      • 데이터베이스
    • 프로그래밍 언어
      • Java
      • JavaScript
      • C·C++
      • Python
    • Backend
      • Spring
    • Frontend
      • HTML
      • CSS
    • Math
      • Linear Algebra
      • Calculus
    • AI
      • ML
      • DL
      • RL
    • Git

블로그 메뉴

  • 홈
  • 관리
  • 글쓰기
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Mathlife
CS/운영체제

[ETL] Processes and Threads - Process Concept

[ETL] Processes and Threads - Process Concept
CS/운영체제

[ETL] Processes and Threads - Process Concept

2022. 5. 16. 21:17

출처 : SNUON / 운영체제의 기초: 쉽게 배우는 운영체제 원리 / 서울대 홍성수 교수님

 

 

 

현대의 SW는 너무 복잡해서 분석하기 위해 abstaction, decomposition 필요

 

decomposition : 복잡한 문제를 단순한 여러 개의 문제로 나누는 방법론

 

그리고 process가 이 decomposition의 단위가 된다

 

program in execution

- 프로그램은 disk에 저장된 수동적인 데이터에 불과하다.

- 프로그램을 실행하면 비로소 process가 되고 I/O 등의 작업들(execution stream)을 수행하게 된다.

 

process state (= context)

- 프로그램이 수행되는데 영향을 주거나 프로그램의 수행으로 인해 영향을 받을 수 있는 모든 것들

- ex) memory의 code segment, data segment, stack segment

> code segment에는 기계어 존재

> data segment에는 프로그램의 전역 변수 존재

> stack segment에는 프로그램의 지역 변수나 함수 호출을 위해 필요한 내용이 존재

- ex) CPU의 register values

- ex) Per-process kernel info

 

execution stream

- 프로세스가 지금까지 수행한 instruction의 sequence

 

 

 

multiprogramming

- 메모리의 관점에서 main memory에 여러 active process가 올라가 있다는 뜻

 

multiprocessing

- CPU의 관점에서 여러 process가 CPU를 나눠 쓰고 있다는 뜻

 

참고

얼핏 보기에 multiprocessing을 위해서는 multiprogramming이 필수적일 것 같고 실제로 현대의 OS는 multiprogramming을 통해 multiprocessing을 지원하지만 과거에는 그렇지 않았다.

 

 

run-time entity

- process는 instuction 수행의 주체

- process는 OS가 CPU, memory, IO 같은 자원을 할당하는 등의 관리를 하는 단위 

 

design-time entity

- SW system을 design 할 때 각 task를 process로 구현할 수 있다

 

PCB

- OS가 프로세스의 여러 정보를 보관하는 block

 

Process table

- 각 process에 대한 PCB들을 저장하는 data structure

- 초기에는 array 형태로 다루는 경우가 많았지만 지금은 주로 linked list 형태로 다룬다.

 

 

 

여기서 말하는 state는 process state(=context)와는 다른 개념이다.

 

ready queue

- ready 상태의 process들을 관리하는 큐

- 즉, PCB를 node로 쓰는 linked list

 

device queues

- I/O 작업 등의 사유로 waiting 상태에 있는 process들을 관리하는 큐

- waiting의 사유별로 큐가 존재

 

 

'CS > 운영체제' 카테고리의 다른 글

[ETL] Context Switching  (0) 2022.05.22
[ETL] Processes and Threads - Process Scheduling  (0) 2022.05.16
[ETL] Computer Hardware  (0) 2022.05.14
[ETL] Functions of OS  (0) 2022.05.14
[ETL] Evolution of OS  (0) 2022.05.14
    'CS/운영체제' 카테고리의 다른 글
    • [ETL] Context Switching
    • [ETL] Processes and Threads - Process Scheduling
    • [ETL] Computer Hardware
    • [ETL] Functions of OS
    Mathlife
    Mathlife

    티스토리툴바

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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