본문 바로가기

운영체제2

프로세스와 스레드(2) 스레드 => 프로세스를 구성하는 실행 흐름의 단위 각기 다른 thread id, 프로그램 counter, register, stack을 가진다. 일반적으로 process , thread를 구분해서 말하기는 하지만 Linux에서는 "Task"라는 이름으로 퉁 치는 경우도 대부분. 가장 주된 차이점은 자원을 공유하는지 안하는지 여부. Process간에는 기본적으로 자원을 공유 X, thread는 프로세스 자원을 공유. => 메모리 효율적일 수 있음. 각 Process마다 자원들이 있고 thread가 따로 존재하게 되는데 아래 사진(multi thread)를 보면 동일한 자원은 모두 공유하고, 개별의 Thread들만 각각의 register stack programm counter를 가지는 것이다. 훨씬 효율적.. 2023. 12. 19.
프로세스와 스레드(1) Kernel , User 영역에서 Process에 관해서 말해보고자 한다. 우선 프로세스란 쉽게 말해서 실행 중인 프로그램이라고 생각하면 된다. 같은 Process인 메모장이 별개의 Process로 관리되는 것을 볼 수 있다. Process는 크게 2가지로 나눌 수 있는데 프로그라운드 프로세스 사용자와 직접 상호작용 하고 있는 프로세스 BackGround Process 사용자와 직접 상호작용 하고 있지 않은 프로세스 다만 이중에선 Daemon, Service와 같이 특별한 프로세스도 있다. => 맡은 바 묵묵히 실행만 되는 프로세스 각각의 Process 마다 PCB (프로세스 제어 블록) 이 있는데 , 일종의 프로세스의 꼬리표 같은 느낌. 운영체제는 PCB를 보고 Process를 판단한다. 위 예시에서 .. 2023. 12. 13.