공부방/운영체제

스레드와 멀티태스킹 서술형 풀어보기

EVO. 2023. 6. 9. 18:17

1.  ‘프로세스의 스레드의 차이 점이 무엇인지 설명해보라’. 스레드가 왜 프로세스보다 나은 실행 단위인지가 잘 드러나도록 진지하게 설명하라.

 

2. 스레드의 컨텍스트란 어떤 정보를 말하는가? 그리고 이 정보는 어디에 저장되는가?

 

3. 스레드의 주소 공간에 대해

1) 스레드의 주소 공간은 어디에 만들어지는가?

2) 하나의 스레드가 실행되기 위해 주어지는 주소 공간은 어떤 영역으로 나뉘는가? 각각에 대 해 간단히 설명하라.

3) 이 중에서 다른 스레드와 공유하지 않고 스레드만 사용하는 공간은 무엇인가?

 

4. 프로세스 1에 속한 스레드에서 프로세스2가 속한 스레드로 컨텍스트 스위칭이 일어나는 경 우가, 프로세스1에 속한 다른 스레드로 컨텍스트 스위칭되는 경우에 비해 추가적으로 더 필요 한 작업은 무엇인가?

 

5. 커널 레벨 스레드와 사용자 레벨 스레드

1) 정의를 각각 말하라.

2) 스레드로 실행을 시작할 함수는 사용자 영역에 있다. 이 함수가 커널 레벨 스레드로 실행 될 수 있는지 이유와 함께 설명하라.

3) 멀티스레딩 프로그램이 실행될 때, 라이브러리와 운영체제에 의해 사용자 레벨 스레드로 만들어지는 것과 커널 레벨 스레드로 만들어지는 것의 각 장점은 무엇인가?

 

6. N:1 매핑은 멀티스레드 응용프로그램에서 만든 여러 스레드 중 한 개가 파일 입출력으로 인해 블록 상태가 되면 응용프로그램 내의 다른 모든 스레드가 스케줄되지(실행되지) 못하게 된다. 이 과정을 그림으로 그리고 간단히 설명하라.

 

7. 1:1 매핑이 오늘날 컴퓨터 시스템에서 많이 사용되는 이유가 무엇인지 설명하라.

 

8. 교재의 복합 문제 1의 멀티스레드 응용프로그램을 작성하라. 프로그램 소스 코드와 실행 결과를 함께 보여라. 소스코드는 텍스트 형식으로 PDF에 삽입하라. 이 문제는 4개의 스레드 가 자신에게 맡겨진 덧셈 작업을 하여 그 결과를 sum[i]에 저장하고, main 스레드는 최종적 으로 sum[] 배열을 합쳐 출력하는 문제이다. 참고로, 이 사례에서 runner() 함수는 4개의 스레드가 동시에 실행할 코드로 사용된다. 하지 만 runner() 함수에 선언된 지역변수들은 모두 각 스레드의 스택에 독립적으로 생기기 때문 에 여러 스레드가 runner() 함수를 동시에 실행해도 문제가 되지 않는다.

 

9. 교재의 복합 문제 2의 멀티스레드 응용프로그램을 작성하라. 프로그램 소스 코드와 실행 결과를 함께 보여라. 소스코드는 텍스트 형식으로 PDF에 삽입하라. 지시된 대로 코딩하여 실행시키면 실행 결과가 틀리게 나온다. 그 이유를 나름대로 설명하라.

 

예상 답

 

 

 

 

8번