프로세스의 개념
- 일괄 작업 방식(일단 하나 먼저 끝냄)
- 시분할 방식(멀티태스킹)
운영체제의 기능
- 프로세스 관리
- 프로세스 등록
- 프로세스 소멸
- 프로세스 상태 정의와 전이
- 문맥교환 및 스케쥴링
- 인터럽트 처리
- 메모리 관리
- 파일시스템 관리
- 장치 관리
- 네트워크 관리
- 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가 동시처리
- 효율성향상–불필요한 자원의 중복 방지
단점
- 모든스레드가 자원을 공유, 하나의 스레드에 문제가 생기면 전체프로세스에 영향
멀티 스레드 모델
- 멀티 스레드
- 사용자 스레드
사용자가 스레드의 스케쥴링을 직접 조작 - 커널 스레드
ㄹ - 멀티레벨 스레드(사용자 + 커널)
- 사용자 스레드
수정중
'computing' 카테고리의 다른 글
AndroidStudio 알아보기 [app-manifest-AndroidManifest.xml] (2) | 2025.03.20 |
---|---|
AndroidStudio 알아보기 (0) | 2025.03.20 |
PCB(Process Control Block)의 기능, 특징 (2) | 2025.03.18 |
20250317_DB2 (2) | 2025.03.17 |
명언 잠금화면 앱 개발_기획서 (4) | 2025.03.16 |