dev-writeup-2024 / march

개발 1일 1글 스터디
2 stars 0 forks source link

[03-07] 운영체제 3편 - 프로세스 #14

Open Kjm04175 opened 6 months ago

Kjm04175 commented 6 months ago

서론

잡설

3월 6일 글이었지만 3월 7일 글이 되어버린 비운의 무언가입니다.

오늘 다룰 내용은 '프로세스' 입니다. 프로세스는 향후 운영체제를 공부함에 있어 상당히 중요한 파트라고 생각이 됩니다.

운영체제에서 빠질 수 없는 스케줄링 파트나 기타 등등(기억 잘 안남)이 프로세스 파트에서 파생되거든요.

잃어버린 기억을 되살리고자 바로 본론으로 들어가 봅시다.

본론

What is process

프로세스는 현재 실행 중인 프로그램을 의미합니다. 컴퓨터에 깔려있는 프로그램은 보조 기억장치에서는 '프로그램'으로 존재하지만, 메모리에서 실행될 때는 '프로세스'가 됩니다.

프로세스는 Stack, Heap, Data, Code 4 부위로 나뉩니다.

image

그림에서 확인 가능하듯 힙과 스택은 각자 다른 방향에서 시작하여 서로 만나려는 방향으로 확장됩니다.

옆에 개미가 등장한 이유는 프로세스가 길게 생겨서 좌우가 비기 때문이었습니다. 연관 있는 것을 넣고 싶었지만 이미 머리가 머리 가슴 배로 나뉘는 개미에 오버피팅 되어 다른 것이 떠오르지 않았습니다.

요약하자면, 프로세스란! '컴퓨터에서 실행 중인 프로그램' 을 의미합니다.

Process state

image

프로세스는 생성되고 작업을 끝마치기 까지 5개의 상태를 가집니다. 각각의 상태에 대해 설명을 하자면

대부분의 상태는 이해가 갑니다. 하지만, Ready와 Waiting의 경우 둘 다 기다리는 행위를 한다는 측면에서 헷갈릴 여지가 있습니다.

대략 Ready는 자신의 차례가 오는 것을 기다리는 것, Waiting은 자신의 차례가 오긴 했지만 긴 작업이 요구되어 대기하는 것 정도의 차이로 보시면 될 것 같습니다.

PCB

image

PCB는 Process Control Block의 약자로, 운영체제가 각 프로세스를 관리하기 위해 보유 중인 정보의 그룹 입니다.

여기에는 Process state, Process ID, Priority 등 운영 상 필요한 메타 정보가 포함되어 있으며 Program counter, Register 등 CPU와 관련된 하드웨어 값, 메모리 파일 등의 정보가 들어 있습니다.

Context switch

image

Context switch 는 process의 이전 상태를 저장해 두고, 다른 프로세스를 로드하는 것을 의미합니다. 여기서 저장하고 불러오는 정보는 앞 서 설명한 'PCB' 입니다.

즉, CPU에서 PCB 정보가 바뀌는 것이 Context switch 입니다.

context switch 의 경우 스케줄링에서 등장하기도 하고, 이전에 네트워크를 한창 배울 무렵 밈처럼 썼던 기억이 나네요.

결론

오늘은 프로세스의 기초 정보를 다루었고, 다음은 프로세스를 스케줄링하는 알고리즘 들에 대해 알아보도록 하겠습니다.

글에 써먹으려고 마우스로 그림을 여럿 그려봤는데, 다들 애매해서 써 먹은게 많이 없는 느낌이네요...

내일 다시 뵙겠습니다!

참조

https://rebro.kr/172

snaag commented 6 months ago

어피치는 무슨일이 있었길래 깡소주를 🫠... 그나저나 PCB 진짜 오랜만이네요! 다른 내용들도 많이 잊고 있었는데 덕분에 기억이났어요 👍🏻👍🏻

mingnuj commented 6 months ago

프로세스는 머리가슴배가 아니라서 아쉬워요