10장 프로세스와 스레드

10-1 프로세스 개요 프로세스(process): 실행중인 프로그램 프로세스 직접 확인하기 ps 명령어를 통해 확인 가능 포그라운드 프로세스(foreground process): 사용자가 보는 앞에서 실행 백그라운드 프로세스(background process): 사용자가 보지 못하는 뒤에서 실행 데몬(daemon): 유닉스 체계의 운영체제의 백그라운드 프로세스 서비스(service): 우니도우 운영체제에서의 백그라운드 프로세스 프로세스 제어 블록 PCB(Process Control Block, 프로세스 제어 블록) 프로세스와 관련된 정보를 저장하는 자료 구조 해당 프로세스를 식별하기 위해 꼭 필요한 정보들이 저장 메모리에 있는 커널 영역에서 생성 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기 PCB에 담기는 정보 PID(프로세스 ID, Process ID) 특정 프로세스를 식별하기 위해 부여되는 고유한 번호 레지스터 값 이전까지 사용했던 레지스터의 중간값 프로그램 카운터 등의 레지스터 값 프로세스 상태 입출력장치를 사용하기 위해 기다리는지, CPU를 기다리는지, CPU를 이용하는지 등 CPU 스케줄링 정보 프로세스가 언제, 어떤 순서로 CPU를 할당받았는지 메모리 관리 정보 프로세스가 어느 주소에 저장되어 있는지 베이스 레지스터, 한계 레지스터 값 등 페이지 테이블 정보 사용한 파일과 입출력장치 목록 실행과정에서 특정 입출력장치나 파일을 사용하는지 문맥 교환 프로세스 실행에 대한 중간 정보를 저장해야, 다음 차례가 왔을 때 이전까찌 실행했던 내용에 이어 다시 실행을 재개할 수 있음 문맥(context) 해당 프로세스의 PCB에 표현 문맥 교환(context switching) 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로 복구하여 새로운 프로세스를 실행하는 것 프로세스 A 실행 → A 문맥 저장 → B 문맥 로드 → 프로세스 B 실행 → B 문맥 저장 → … 너무 자주 하면 오버헤드가 발생하여 부정적인 효과 프로세스의 메모리 영역 PCB는 커널 영역에 생성 ...

2026년 2월 10일 · 6 분 · 배준수

5장 CPU 성능 향상 기법

05-1 빠른 CPU를 위한 설계 기법 클럭 컴퓨터 부품들은 ‘클럭 신호’에 맞춰 일사불란하게 움직인다. CPU는 ‘명령어 사이클’이라는 정해진 흐름에 맞춰 명령어들을 실행한다. 클럭 속도: 헤르츠(Hz) 단위로 측정. 초당 반복되는 횟수 오버클럭킹(overclocking): CPU의 최대 클럭 속도를 강제로 더 끌어올림 코어와 멀티코어 기존의 CPU: 전통적인 관점에서는 ‘명령어를 실행하는 부품’ 하나 ⇒ 현재는 코어(Core) 현재의 CPU: 여러 개의 코어를 포함하는 부품 ⇒ 멀티코어 CPU(multi-core CPU), 멀티코어 프로세서 스레드와 멀티스레드 스레드(thread) 사전적 정의: 실행 흐름의 단위 하드웨어적 스레드: 하나의 코어가 동시에 처리하는 명령어의 단위 소프트웨어적 스레드: 하나의 프로그램에서 독립적으로 실행되는 단위 하드웨어적 스레드 이하 하드웨어 스레드 하나의 코어가 동시에 처리하는 명렁어 단위 하나의 코어에 스레드가 많으면 동시에 여러 명령어를 처리할 수 있음 멀티스레드(multithread) 프로세서, 멀티스레드 CPU 하이퍼스레딩(hyper-threading) in Intel 메모리 속 프로그램의 입장에선 각 하드웨어 스레드는 CPU로 보임(하나의 명령어를 처리하니까) 따라서 **논리 프로세서(logical processor)**라고 부름 소프트웨어적 스레드 이하 스레드 하나의 프로그램에서 독립적으로 실행되는 단위 프로그래밍 언어, 운영체제에서 이야기하는 스레드 한 프로그램에서 여러 부분이 동시에 실행될 수 있다. ex) 워드 프로세서 입력받은 내용 화면 출력 맞춤법 검사 상시 저장 멀티스레드 프로세서 멀티스레드 프로세서: 레지스터 세트(프로그램 카운터, 스택 포인터, MBR, MAR 등)를 여러 개 가지면 된다. ...

2025년 11월 7일 · 6 분 · 배준수