CS

[쉽게 배우는 운영체제] 3장 연습문제 정답

kimyoungrok 2024. 10. 14. 21:45

01. 실행을 위해 메모리에 올라온 동적인 상태를 가리키는 것은?

  1. 소스코드
  2. 프로세스
  3. 프로그램
  4. PCB

02. 프로세스를 실행하는 데 필요한 정보를 보관하는 자료구조는?

  1. stack
  2. PC
  3. queue
  4. PCB

03. 프로세스가 CPU를 할당받기 전에 기다리는 상태는?

  1. 실행 상태
  2. 준비 상태
  3. 대기 상태
  4. 생성 상태

04. 실행 상태의 프로세스가 입출력을 요구하면 이동하는 상태는?

  1. 완료 상태
  2. 준비 상태
  3. 대기 상태
  4. 생성 상태

05. 대기 상태의 프로세스가 입출력이 완료되면 이동하는 상태는?

  1. 실행 상태
  2. 준비 상태
  3. 완료 상태
  4. 생성 상태

06. 실행 상태의 프로세스가 작업이 안 끝났음에도 타임 슬라이스 아웃이 걸려 이동하게 되는 상태는?

  1. 완료 상태
  2. 준비 상태
  3. 대기 상태
  4. 생성 상태

07. PCB가 제거되는 상태는?

  1. 완료 상태
  2. 준비 상태
  3. 대기 상태
  4. 생성 상태

08. CPU 스케줄러에 의하여 디스패치(선택)되는 PCB가 이동하는 상태는?

  1. 준비 상태
  2. 대기 상태
  3. 완료 상태
  4. 실행 상태

09. 두 프로세스의 PCB를 교환하고 작업 환경을 바꾸는 작업은?

  1. 활성 상태
  2. 다단계 큐
  3. 다중 인스턴스
  4. 문맥 교환

10. 타임 슬라이스의 크기를 정할 때 기준이 되는 것은?

  1. 문맥 교환
  2. 다단계 큐
  3. 다중 인스턴스
  4. 활성 상태

11. 유닉스에서 프로세스 번호 1번이면서 모든 프로세스의 최고 조상에 해당하는 프로세스의 이름은?

  1. init
  2. login
  3. shell
  4. swapper

12. 새로운 프로세스를 생성하는 함수는?

  1. wait()
  2. fork()
  3. exit()
  4. exec()

13. 프로세스는 그대로 놔둔 채 코드를 바꾸는 함수는?

  1. wait()
  2. fork()
  3. exit()
  4. exec()

14. 프로세스의 재사용과 가장 연관이 깊은 함수는?

  1. wait()
  2. fork()
  3. exit()
  4. exec()

15. 자식 프로세스가 종료되기 전에 부모 프로세스가 먼저 종료되면 자식 프로세스는 어떤 프로세스가 되는가?

  1. init 프로세스
  2. zombie 프로세스
  3. orphan 프로세스
  4. swapper 프로세스

16. 자식 프로세스가 종료되었는데도 부모가 뒷처리를 하지 않으면 자식 프로세스는 어떤 프로세스가 되는가?

  1. init 프로세스
  2. 좀비 프로세스
  3. 고아 프로세스
  4. swapper 프로세스

17. 활성 상태가 아닌 것은?

  1. 보류 상태
  2. 대기 상태
  3. 완료 상태
  4. 준비 상태

18. 코드에 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위는?

  1. 태스크
  2. 작업
  3. 프로세스
  4. 스레드

19. 멀티스레드의 장점이 아닌 것은?

  1. 스레드끼리 독립적이라 영향을 받지 않는다.
  2. 응답 속도가 빨라진다.
  3. 프로세스에 비하여 통신 오버헤드가 적다.
  4. 시스템 자원을 공유한다.

20. 스레드 모델 중 라이브러리로 구현되며 커널이 멀티스레드를 지원하지 않을 때 사용되는 모델은?

  1. 1 to 1 모델
  2. 커널 스레드
  3. 사용자 스레드
  4. M to N 모델

21. 프로세스 제어 블록(PCB)은 (운영체제) 영역에 만들어진다.

22. 메모리에 있는 프로세스는 코드, 데이터, (스택) 영역으로 나뉜다.

23. 프로세스 상태 중 (준비) 상태는 프로세스가 CPU를 할당받기 전에 기다리는 상태다.

24. 프로세스 상태 중 (대기) 상태는 컴퓨터의 효율성을 높이기 위하여 만들어진 상태다.

25. 프로세스 상태 중 (대기) 상태는 실행 상태의 프로세스가 입출력을 요구하면 이동하는 상태다.

26. 프로세스 상태 중 (준비) 상태는 대기 상태의 프로세스가 입출력이 완료되면 이동하는 상태다.

27. 프로세스 상태 중 (준비) 상태는 실행 상태의 프로세스가 작업이 안 끝났음에도 타임 슬라이스 아웃이 걸려 이동하게 되는 상태다.

28. 프로세스 상태 중 (완료) 상태는 PCB가 제거되는 상태다.

29. 프로세스 상태 중 (실행) 상태는 CPU 스케줄러에 의하여 디스패치(선택)되는 PCB가 이동하는 상태다.

30. (문맥교환)은 두 프로세스의 PCB를 교환하고 작업 환경을 바꾸는 작업이다.

31. 타임 슬라이스의 크기를 정할 때 기준이 되는 것은 (문맥교환)에 걸리는 시간이다.

32. (garbage collection)은 종료된 자원을 회수하는 작업이다.

33. 유닉스에서 프로세스 번호 1번이면서 모든 프로세스의 최고 조상 프로세스에 해당하는 프로세스의 이름은 (init)이다.

34. (fork)는 새로운 프로세스를 생성하는 함수다.

35. (exec)는 프로세스는 그대로 놔둔 채 코드를 바꾸는 함수다.

36. (fork)는 다중 인스턴스를 만들 때 사용하는 함수다.

37. (exec)는 프로세스의 재사용과 가장 연관이 깊은 함수다.

38. (exit)은 wait()에게 신호를 보내는 함수다.

39. 부모 프로세스의 PID는 268이고, 자식 프로세스의 PID는 364라면 부모 프로세스의 CPID는 (364)이다.

40. 부모 프로세스의 PID는 268이고, 자식 프로세스의 PID는 364라면 자식 프로세스의 PPID는 (268)이다.

41. 자식 프로세스가 종료되기 전에 부모 프로세스가 먼저 종료되면 자식 프로세스는 (고아프로세스)가 된다.

42. 자식 프로세스가 종료되었는데도 부모가 뒷처리를 하지 않으면 자식 프로세스는 (좀비프로세스)가 된다.

43. fork() 이후에 부모 프로세스에 wait()가 없으면 (고아) 프로세스가 만들어진다.

44. 프로세스 상태 중 (휴식) 상태는 메모리에 남아 있지만 작업을 정지하고 있는 상태다.

45. 프로세스 상태 중 (보류) 상태는 프로세스는 살아 있지만 메모리에서 쫓겨난 상태다.

46. (프로세스)는 프로그램이 실행을 위해 메모리에 올라온 동적 상태를 말한다.

47. (PCB)는 프로세스를 실행하는 데 필요한 정보를 보관하는 자료구조다.

48. 작업, 태스크, 스레드 중 가장 큰 단위는 (작업)이다.

49. 작업, 태스크, 스레드 중 가장 작은 단위는 (스레드)이다.

50. (스레드)는 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위를 말한다.

51. (멀티스레드)는 프로세스에서 자원을 공유하고 실행 단위만 여러 개 만드는 것을 말한다.

52. 스레드 모델 중 (사용자 스레드)은 라이브러리로 구현되는 것이다.

53. 스레드 모델 중 (커널 스레드)은 문맥 교환이 없어 속도가 빠른 스레드 초기 모델이다.

54. PCB에 대하여 설명하시오.

PCB는 운영체제에서 프로그램을 프로세스로 만들기 위해 필요한 정보를 가지고 있는 자료구조

55. 프로세스의 다섯 가지 상태에 대하여 설명하시오.

  • 생성 상태 : PCB가 생성되어 프로세스로 전환된 상태
  • 준비 상태 : CPU 스케줄러에게 선택 받기 위해 큐에서 기다리는 상태
  • 실행 상태 : CPU가 실행 중인 상태
  • 대기 상태 : 실행 상태의 프로세스가 입출력을 처리하기 위해 기다리는 상태
  • 완료 상태 : 작업이 완료되어 PCB를 제거되고, 자원이 반환 된 상태

56. 문맥 교환에 대하여 설명하시오.

CPU를 차지하던 프로세스가 나가고, 새로운 프로세스로 전환되는 것

57. 고아 프로세스와 좀비 프로세스에 대하여 설명하시오.

  • 고아프로세스 : 부모프로세서가 먼저 종료되어 남은 자식프로세스
  • 좀비프로세스 : 자식프로세스가 종료되었는데 부모프로세스에서 뒤처리를 하지 않아 남은 프로세스

58. 멀티태스크(프로세스)와 멀티스레드를 비교하시오.

  • 멀티태스크 : 여러 프로세스 간 독립적으로 작동하는 것
  • 멀티스레드 : 하나의 프로세스 내에서 여러 스레드가 작동하는 것

59. 멀티스레드의 장점을 설명하시오.

추가 할당 없이 프로세스 내 자원을 공유할 수 있으며, 문맥 교환이 발생하지 않는다.

또한, 여러 스레드가 존재하므로 여러 작업을 매끄럽게 진행할 수 있다.

60. 멀티스레드 모델을 간략하게 설명하시오.

  • 1:N 모델 : 커널 스레드 하나에 사용자 스레드 여러개가 매핑되는 방식
  • 1:1 모델 : 사용자 스레드 하나가 커널 스레드 하나에 매핑되는 방식
  • N:M 모델 : 커널 스레드와 사용자 스레드의 하이브리드 형태로, 한개의 커널 스레드가 대기상태로 전환되면 다른 커널 스레드가 작업을 대신하는 유연한 구조로 상황에 따라 사용자/커널 스레드 방식으로 동작한다.