해결된 질문
22.04.09 21:57 작성
·
204
2
PCB는 프로그램이 메모리에 올라올 떄 생성되는것으로 알고있습니다.
시스템 프로그래밍 책을 보면 Windows와 같은 운영체제는(대부분의 운영체제?) 선점형 OS이고 시분할 방식의 처리를 위해 각 프로세스의 상태를 지닌다고 하는데, 해당 책에서는 프로세스가 상태를 지니는게 아닌 스레드가 상태(준비,실행,대기등)를 지닌다고 하는데 여기서 궁금한점이 있습니다.
멀티스레드 환경에서도 여러 스레드끼리 컨텍스트 스위칭이 발생할텐데 그 스레드들의 상태는 PCB에 어떻게 저장이 되는형식일까요? 스레드가 2개가 실행상태에 있다가 I/O로 인한 대기상태로 빠진다던지 주어진 타임슬라이스를 다 사용해 컨텍스트 스위칭이 동시에 일어났다면 두 쓰레드의 정보를 저장해야 할텐데 하나의 PCB에서 이를 모두 관리한다는게 잘 와닿지가 않습니다.
해당 강의에서도 PCB에서는 프로세스 상태를 저장한다고 하니 많이 헷갈리네요ㅠㅠ
답변 1
0
2022. 04. 10. 02:29
해당책에서는 스레드 정보를 저장하는 TCB(Thread Control Block)을 설명한 것 같습니다.
프로세스는 PCB에 저장되고 쓰레드는 TCB에 저장됩니다!