sugar.kim

[10장] 프로세스와 스레드 본문

DEV/컴퓨터구조+운영체제

[10장] 프로세스와 스레드

김슈가 2023. 5. 21. 23:42
728x90
반응형

1. 프로세스와 관련된 설명 중 옳지 않은 것을 2가지 고르세요. 답 ) 2, 6 -> (2) : 사용자가 볼 수 없는 공간에서도 프로세스를 백그라운드 프로세스라고 하며 이런 백그라운드 프로세스를 유닉스 에서는 데몬, 윈도우에서는 서비스라고 부른다./ (6):  프로세스 ID는 프로세스를 식별하기 위해 부여하는 고유한 번호로, 같은 일을 수행하는 프로그램이라 할지라도 두 번 실행하면 PID가 다른 두 개의 프로세스가 생성된다.

  • 1) 컴퓨터가 부팅 되는 순간부터 수많은 프로세스들이 실행된다.
  • 2) 프로세스는 사용자가 볼 수 있는 공간에서만 실행된다.
  • 3) 유닉스 체제의 운영체제에서는 ps 명령어로, 윈도우에서는 작업 관리자의 [프로세스]탭에서 확인 할 수 있다.
  • 4) 프로세스들은 차례대로 돌아가며 한정된 시간 만큼만 CPU를 이용한다.
  • 5) 프로세스 제어 블록은 커널 영역에 생성되며 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기된다.
  • 6) 프로세스 제어 블록에 담기는 정보 중 프로세스 ID는 같은 일을 수행하는 프로세스면 두번 실행해도 똑같은 PID로 재실행된다.

2. 아래 <보기>에 들어갈 단어들을 설명에 맞춰 () 안에 넣으세요. 여러 개의 단어가 들어갈 수도 있으며, 중복된 답이 나올 수도 있습니다.

<보기>
문맥 교환, 사용한 파일과 입출력 장치 목록,  스택 영역, 힙영 역, 코드 영역, 데이터 영역
  • 사용자 영역에서 프로세스가 배치될때는 크게 네가지 영역으로 나어 저장된다. ( 코드 영역, 데이터 영역, 힙 영역, 스택 영역
  • 어떤 파일을 열었는지, 어떤 입출력 장치가 이 프로세스에 할당 되었는지 PCB에 기록된다. (사용한 파일과 입출력 장치 목록)
  • 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로 부터 복구하여 새로운 프로세스를 실행하는 것이다. (문맥 교환)
  • 프로그래머가 직접 할당할 수 있는 저장 공간으로 실시간으로 그 크기가 변할 수 있으며, 동적 할당 영역이라고 부른다. 메모리의 낮은 주소에서 높은 주소로 할당된다. (힙 영역

3. 프로세스 계층 구조에 대한 예시이다. 아래 예시에서 ls 프로세스의 부모 프로세서와 자식 프로세서를 나누어 적어보자. 

최초 프로세스가 로그인 프로세스를 생성하고, 로그인 프로세스는 bash 프로세스를 생성하고, bash 프로세스는 ls 프로세세스를 생성했다고 가정해본다.  (없을 경우 없다라고 쓴다.)
  • ls 프로세스의 부모프로세스는?  bash
  • ls 프로세스의 자식프로세스는? 없다.

4. 아래 그림은 프로세스 생성기법과 관련된 것으로 1번은 복제, 2번은 옷갈아입기에 해당되는 과정이라 할 수 있다. 1번과 2번에 올 수 있는 시스템 호출을 쓰세요.

  • [1]: fork()
  • [2]: exec()

 

5. 스레드의 개념을 설명하고, 멀티프로세스와 멀티스레드의 차이점에 대해서 서술하시오. 

답: 스레드란 프로세스를 구성하는 실행의 흐름 단위이다. 멀티 프로세스는 여러 프로세스를 동시에 실행하는 것이고, 멀티스레드는 여러 스레드로 프로세스를 동시에 실행하는 것이다. 멀티 프로세스와 멀티 스레드의 차이는 자원 공유에서 있다 . 멀티 프로세스는 자원을 공유하지 않지만, 프로세스내의 멀티 스레드들은 자원을 공유한다. 이 때 스레드가 공유하는 자원은 코드, 데이터, 힙, 파일이 있으며 스레다마다 따로 가지는 자원으로는 레지스터, 스택, 프로그램 카운터가 있다. 

 

정답은 드래그 하면 노출 됩니당!!! : )

우리 스터디 홧띵!

728x90
반응형
Comments