상세 컨텐츠

본문 제목

[운영체제]2강 프로세스와 쓰레드

카테고리 없음

by 데브수달 2023. 12. 12. 17:34

본문

728x90
반응형

<프로세스의 개요>

>프로세스:실행중인 프로그램

-프로그램:동작을 하지 않는 정적. 수동적 개체

-프로세스:동작을 하는 능동적 개체

 

>운영체제로부터 자원을 할당받아 동작

-자원: cpu,메모리,입출력장치,파일 등

-동작: cpu가 프로세스의 명령을 실행

 

<프로세스와 운영체제>

>운영체제(프로세스 관리자)가 처리하는 작업

-프로세스를 생성 및 종료

-프로세스를 실행시키기 위한 스케줄링 작업

-프로세스의 상태 관리

 

<프로세스의 구성>

>메모리 구조

-프로그램 실행에 직접적으로 필요한 코드와 데이터

-프로그램 자체

-프로그램 실행 시 필요한 데이터

--상수나 변수의 값

--서브프로그램호출상태 등

 

 

>프로세스 제어 블록

-운영체제가 프로세스를 관리하기 위해 필요한 정보

ex)프로세스 번호(PID), 프로세스 상태 , 프로그램 카운터(PC),레지스터, 메모리 관리 정보 , 프로세스 우선순위, 회계 정보 등

 

-각 프로세스마다 존재

-여러 프로세스가 번갈아 실행되는 경우 PCB에 저장된 정보 활용

 

<프로세스 상태 관리>

>프로세스 상태

 

 

<부모 프로세스와 자식 프로세스>

>프로세스 생성 방법

-사용자가 프로그램을 직접 실행

-한 프로세스가 다른 프로세스를 생성

--프로세스 생성 시스템 호출 이용

--부모 프로세스:시스템 호출을 하는 프로세스

--자식 프로세스:시스템 호출을 통해 새로 생성된 프로세스

 

>프로세스 종료 방법

-프로세스가 모든 처리를 완료(정상적 종료)

-부모 프로세스에 의해 자식 프로세스가 강제 종료

--프로세스 종료 시스템 호출 이용

--자식 프로세스 생성시 얻은 자식 pid이용

-부모 프로세스가 종료되는 경우 운영체제가 자식 프로세스 종료

 

<프로세스 생성 시스템 호출>

>유닉스, 리눅스: fork( )

-자식 프로세스는 부모 프로세스의 복제본

>유닉스, 리눅스: exec( )

-자식 프로세스는 부모 프로세스와는 다른 프로그램 실행

 

>윈도우 :CreateProcess( )

-자식 프로세스는 새로운 프로그램으로 생성

 

<전통적인 프로세스>

>하나의 프로그램을 실행하기 위한 기본적인 단위

>자원 소유의 단위

-하나의 메모리 구조

>디스패칭의 단위

-하나의 제어흐름

 

<쓰레드>

>프로세스 내에서의 다중처리를 위해 제안된 개념

>하나의 프로그램을 실행하기 위한 기본적인 단위

>디스패칭의 단위

 

<프로세스 비교>

>전통적인 프로세스

>쓰레드 있는 프로세스

각각의 쓰레드마다 제어를 따로따로 할 수 있다.

 

<쓰레드와 프로세스>

>쓰레드는 실행에 필요한 최소한의 정보만 가짐

-pc를 포함한 레지스터 값

-상태정보

-스택 영역

 

<다중 쓰레드로 구성된 프로세스>

>멀티 cpu또는 멀티코어 컴퓨터 시스템

--다중 쓰레드를 병렬로 처리 가능

 

>처리 속도 별로 쓰레드가 나눠진 경

-효율적인 처리가능

 

728x90
반응형