본문 바로가기
computing

20250318_OS3

by greentworkshop 2025. 3. 18.

프로세스의 개념

  • 일괄 작업 방식(일단 하나 먼저 끝냄)
  • 시분할 방식(멀티태스킹)

 

운영체제의  기능

  • 프로세스 관리
    • 프로세스 등록
    • 프로세스 소멸
    • 프로세스 상태 정의와 전이
    • 문맥교환 및 스케쥴링
    • 인터럽트 처리
  • 메모리 관리
  • 파일시스템 관리
  • 장치 관리
  • 네트워크 관리
  • IPC

프로세스의 개념

  • 프로그램(Program)
    • 저장장치에 저장된 정적 소프트웨어
  • 프로세스(Process, task, job)
    • 실행을 위해 메모리에 올라온 동적인 상태
    • PCB를 할당 받아 메모리에 로드됨(CPU가 주기적으로 처리함)
  • 프로세서(Processor)
    CPU와 같은 말

PCB란?

PCB(Process Control Block)

  • 프로그램이 프로세스로 전환될때 운영체제가 만드는 작업지시서
  • 운영체제가 각 프로세스를 관리하기 위해 정의한 자료구조

PCB의 정보

  • 프로세스구분자(PID: Process Identification) : 각 프로세스를 구분하는 구분자 
  • 메모리관련정보: 프로세스의메모리위치정보, 메모리보호를위한경계레지스터와한계레지스터 
  • 각종중간값: 프로세스가사용했던중간값(처리과정 기록 = 보고서 개념)

각 프로세스는 고유의 PCB를 갖는다.



프로세스의 구조

메모리 내 프로세스 구조(RAM)

  • 코드 영역(Code Area)
    • 코드 탑재
  • 데이터 영역(Data Area)
    • 전역변수, 파일...
  • 스택 영역(Stack Area)
    • 함수를 실행하기 위해 필요한 내용(지역 변수, 매개변수...)
  • 힙 영역(Heap Area)
    •  

프로세스 생성

fork()함수

  • (fork)메모리, 기본 프로세스 복사, 새로운 프로세스를 만들어줌
  • exec(프로세스를 유지한 채 내용만 변환)

call함수?


프로세스의 계층 구조

~~

~~

부모가 자식 프로세스의 자원 회수( 회수하지 못한 경우 )

  • 고아 프로세스
    • 부모프로세스가먼저종료되어돌아갈곳없는프로세스
  • 좀비 프로세스

쓰레드(Thread)

  • 프로세스 내부에 존재하는 최소 작업 단위(여러 개 가능)
  • 프로세스의 최소 단위
  • CPU 스케쥴러가 전달하는 일

코스요리를 각각의 요리로 구분한 것 = Process

Process <-X-> Process (독립적)

서로 관여하려면 통신기법(IPC: Inter-Process Communication) 필요

각각의 요리를 절차(굽기, 자르기...)에 따라 구분한 것 = Thread

Process(Thread <-O-> Thread)


*멀티 태스크 vs 멀티 스레드 vs 멀티 태스킹(과제)

  • 멀티 스레드 : 스레드를 분할하여 수행
  • 멀티 프로세싱 : CPU를 여러 개 사용하여 다수의 스레드를 동시에 처리하는 방법
  • 멀티 태스킹 : 작업시간을 나누어 처리하는 기법(하나의 CPU에 여러개의 프로세스가 돌아가는가?)

하이퍼 스레딩(Hyper-Threading)

CPU가 동시에 여러 스레드를 처리하도록 만든 병렬처리 기법(파이프라인 기법)

 

장점

  • 응답성향상–한 스레드가 지연되더라도, 다른 스레드가 사용자요구에 응답 
  • 자원공유–한 프로세스의 자원을 모든 스레드가 공유
  • 다중CPU 지원– 2개 이상의 CPU에 멀티스레드를 사용하면, 다중CPU가 동시처리
  • 효율성향상–불필요한 자원의 중복 방지

단점

  • 모든스레드가 자원을 공유, 하나의 스레드에 문제가 생기면 전체프로세스에 영향

멀티 스레드 모델

  • 멀티 스레드
    • 사용자 스레드
      사용자가 스레드의 스케쥴링을 직접 조작
    • 커널 스레드
    • 멀티레벨 스레드(사용자 + 커널)

수정중