제이슨의 개발이야기
프로세스(Process) 와 프로세스 제어블록(PCB)는 무엇인가? 본문
안녕하세요
오늘은 프로세스에 대해서 공부해보려고합니다!
프로세스는 무엇인가?
이 질문은 기술 면접에서 가장 기본중에 기본적인 기술 면접 질문입니다
프로세스는 무엇인가?
프로세스는 간단하게 말하면 실행중인 프로그램을 프로세스 라고 합니다
실행중인 프로그램 == 프로세스. 이 문장은 굉장히 중요한 문장입니다
실행중인 프로그램이 프로세스라는 것은 보조기억장치(하드디스크 등)에 있는 프로그램은 단순 데이터 덩어리라는 것을 의미하기 때문입니다
예를 들면 메모장을 키고 싶어서 메모장을 실행 시키면
보조 기억 장치에 있었던 메모장 프로그램을 메모리에 적재 하고 실행 시키는 순간 프로그램은 프로세스로 바뀌게됩니다
이 과정을 프로세스를 생성한다라고 표현 할 수 있습니다
프로세스에 대해서 공부를 했다면
그 다음에 프로세스 제어블록은 무엇일까요?
프로세스는 살다가 분명 들어본 단어 이지만 프로세스 제어블록(PCB)는 들어보기 힘든 단어 일 수 있습니다
프로세스 제어블록(PCB)에 대한 설명을 하기 전에 먼저 프로세스가 CPU에서 어떻게 실행되는지 설명이 필요합니다
프로세스가 실행하기 위해서는 CPU의 자원이 필요합니다 그러나 CPU의 자원은 한정적이라서 어떤 하나의 프로세스가 CPU의 자원을 독점할 수 없습니다
그래서 CPU는 시간 제한이 정해저 있고 현재 작업중 인 프로세스의 타이머 인터럽트가 발생 할 경우 그동안 CPU 자원을 점유한 프로세스는 그동안 작업한 작업내용을 백업 하고 다른 프로세스에게 자리를 양보해야하는대 이때 정보를 저장하는 자료구조를 프로세스 제어블록(PCB) 라고 합니다
프로세스 제어 블록(PCB)는 프로세스와 관련된 정보를 저장하는 자료구조 라고 할 수 있습니다
PCB는 Process의 정보를 자기고 있는 택 이라고 생각하면 쉽습니다!!!
PCB에는 여러 정보들을 가지고 있는대
프로세스 ID , 레지스터 값 , 프로세스 상태 , CPU 스케줄링 , 메모리 관리 정보 , 사용한 파일과 입출력 장치 목록 을 가지고 있습니다
그래서 CPU는 PCB의 정보를 바탕으로 작업을 진행하게됩니다!!!
다음시간에는 PCB를 가지고 문맥교환(Context Switching)에 대해서 이야기 하겠습니다!
'운영체제' 카테고리의 다른 글
프로세스 상태와 계층구조 (0) | 2022.10.25 |
---|---|
Context Switching 문맥교환 이란? (0) | 2022.10.20 |
시스템 호출은 무엇인가? 어떻게 동작하는가? System Call (0) | 2022.10.17 |
운영체제와 커널 영역 , 사용자 영역 (0) | 2022.10.17 |