상세 컨텐츠

본문 제목

4. 프로세스와 스레드 / 프로세스 휴식, 보류 상태와 문맥

CS전공 지식/1. OS

by 본투비곰손 2023. 6. 27. 23:40

본문

728x90

Process - 관리(OS)의 단위(연산)로 실행의 흐름(Thread)을 가지고 있다.

Thread - Process가 존재하면 반드시 Thread도 1 개 존재한다. CPU 주로 사용

한 Process에 n개의 흐름(실행)을 가지게 되면 동시에 각자 실행 되는데 이를 멀티 쓰레딩이라고 한다.

(멀티스레딩이 발생되면 동시성, 동기화가 일어난다.)

프로세스가 여러개면 멀티태스킹(Multi tasking)이라고 한다.

  • 프로세스는 최소 1개의 쓰레드를 가지고 있다.
  • OS는 가상메모리(제한된 공간)를 프로세스에 할당한다.
  • 프로세스(Process)에 속한 모든 스레드(Thread)는 프로세스에 할당된 가상 메모리(Virtual Memory 1차 메모리-RAM+2차 메모리-HDD)의 공간으로 제한 된다.

스레드(Thread)에 할당된 메모리(Thread Local Storage)는 Stack 메모리

스레드(Thread)가 사용 할 수 있는 메모리는 heap 메모리

운영체제(OS)는 프로세스 관리 블록(PCB)와 스레드 관리 블록(TCB)이 있다.

PCB안 정보

  • PID : ID값
  • Text Session메모리의 정보

프로세스는 한정된 CPU를 시분할사용 한다.

Virtual Memory 구조

  • Stack 영역 - 지역변수 사용
  • Heap 영역 - 인스턴스 변수
  • Text Session(Code 저장)
  • Static
    • 읽기전용 : 문자열
    • 읽기 쓰기 가능 : 전역 변수

설치된 프로그램을 메모리에 올린다(인스턴스화 한다.) = 실행 한다. = 프로그램이 프로세스가 되는 과정

프로세스 휴식, 보류 상태와 문맥

Sleep(자발적) + Suspend(외부 요인 발생)

Sleep()과 우연

Sleep() 함수

Thread: 실행(코드 연산)의 단위, 상태를 가지고 있음

  • Running와 Suspend의 상태 전환 발생
  • Suspend로 전환 시 Sleep()함수를 호출 ()안에는 ms 단위의 정수 입력
  • 쉬는 개념이 아닌 OS관리 대상에서 제외되는 개념으로 ms 단위의 시간 만큼 제외 되었다가 Therad의 Suspend → Running로 상태 전환이 일어나 다시 관리를 시작하기 때문에 정확한 시간 알 수 없음(우연)
  • 우연으로 인한 위험성 발생

프로세스가 실행 중 보류 상태가 되면 아래와 같이 상태를 PCB에 저장 후 보류 되었다가 다시 실행 시 PCB에 저장된 상태를 다시 불러와서 이어가는 문맥 교환 과정이 발생 된다.

 

728x90

관련글 더보기