728x90

운영체제 중간범위 요약.docx
0.04MB

쉽게 배우는 운영체제 (한빛미디어)

PART 01

1장 - 운영체제의 개요

2장 - 컴퓨터의 구조와 성능향상

PART 02

3장 - 프로세스와 스레드

4장 - CPU 스케줄링

5장 - 프로세스 동기화

6장 - 교착 상태

 

요약본

아래는 첨부파일의 원문이다.


Chapter. 01 운영체제와 컴퓨터

1. 운영체제 예시를 쓰시오

           윈도우, MAC, Unix, Linux

 

2. 운영체제의 필요성을 쓰시오

           응용 프로그램이 활동할 수 있는 환경 제공, 응용프로그램이 필요로 하는 

컴퓨터 자원을 나누어줌

 

3. 운영체제의 정의는 무엇인지 쓰시오

           사용자에게 편리한 인터페이스 환경을 제공

           컴퓨터 시스템의 자원을 효율적으로 관리한다.

 

4. 운영체제의 역할을 쓰시오

           자원관리 (효율성)

           자원보호 (안정성)

           하드웨어 인터페이스 제공 (확장성)

           사용자 인터페이스 제공 (편리성)

 

5. 운영체제의 목표를 쓰시오

           효율성 (자원관리)

           안정성 (안정성)

           확장성 (하드웨어 인터페이스 제공)

           편리성 (사용자 인터페이스 제공)

 

 

 

 

6. 최초의 컴퓨터는 무엇으로 제작되었나?

           진공관

 

7. 최초의 운영체제는 언제 등장했나?

           1950년대

 

8. 최초의 운영체제가 개발된 기반 시스템은 무엇인가?

           일괄 작업 시스템

 

9. 최초의 운영체제가 적용된 기반 시스템에서 입력을 담당하는 장치는?

           천공카드 리더

 

10. 최초의 운영체제가 적용된 기반 시스템에서 출력을 담당하는 장치는?

           라인 프린터

 

11. 작업 중간에 사용자가 입력을 하거나 사용자에게 중간 결과값을 보여주는 시스템은?

           대화형 시스템

 

12. 1960년대에 개발된, 입력과 출력 및 중간 결과값을 보여주는 시스템은?

           대화형 시스템

 

13. 하나의 CPU로 여러 작업을 동시에 실행하는 기술은 무엇인가?

           다중 프로그래밍

 

14. 최초로 다중 프로그래밍 개념이 적용된 시스템은 무엇인가?

           시분할 시스템

 

15. 동시에 실행되는 작업의 개수를 무엇이라고 하는가?

           멀티프로그래밍 수준 (멀티프로그래밍 정도)

 

16. 유닉스가 개발된 시기에 개발된 시스템은 무엇인가?

           다중 사용자 시스템

 

16. 여러 사람이 동시에 작업할 수 있는 시스템은 무엇인가?

           다중 사용자 시스템

 

17. 값이 싸고 크기가 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터와 비슷한 성능을 내는 시스템은?

           분산 시스템

 

18. 개인용 컴퓨터를 쉽게 접하게 된 계기가 된 시스템은 무엇인가?

           분산 시스템

 

19. 분산 시스템의 문제점을 보완하여 고안된 시스템은 무엇인가?

           클라이언트/서버 시스템

 

20. 클라이언트/서버 구조의 문제점은 무엇인가?

           서버 과부화

 

21. 클라이언트/서버 시스템의 문제점을 보완하여 고안된 시스템은 무엇인가?

           P2P 시스템

 

22. 서버를 거치지 않고 사용자와 사용자를 직접 연결하여 파일 전송을 하는 시스템은 무엇인가?

           P2P 시스템

 

23. P2P 시스템의 예시는 무엇이 있는가?

           메신저, 파일 공유

 

24. 필요한 컴퓨팅 자원을 구매하여 사용하며, 분산 시스템의 한 분야로 여겨지는 컴퓨팅 환경을

무엇이라고 하는가?

           그리드 컴퓨팅

 

25. 사용자가 필요할 때 소프트웨어 기능을 이용하고 그만큼의 비용을 지불하는 개념은?

           SaaS

 

26. 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경은?

           클라우드 컴퓨팅

 

27. 그리드 컴퓨팅과 SaaS를 합쳐놓은 형태의 환경은?

           클라우드 컴퓨팅

 

28. 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술은?

           사물 인터넷

 

29. 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심 기능을 모아놓은 것은?

           커널

 

30. 커널이 자신을 보호하기 위해 만든 인터페이스는 무엇인가?

           시스템 호출

 

31. 응용 프로그램과 커널의 인터페이스를 무엇이라고 하는가?

           시스템 호출

32. 커널과 하드웨어의 인터페이스는 무엇이라고 하는가?

           드라이버

 

33. 커널의 역할은 무엇이 있는가?

           프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 프로세스 간 통신 관리

 

34. 초창기의 운영체제 구조로, 커널의 핵심 기능을 구현하는 모듈을 구분없이 하나로 구성한 것은?

           단일형 구조 커널

 

35. 단일형 구조 커널의 장점은?

           모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능하다.

 

36. 단일형 구조 커널의 단점은?

           버그나 오류를 처리하기가 어렵다.

           상호 의존성이 높다

           구현하기가 어렵다

 

37. 단일형 구조 커널이 발전된 형태로, 비슷한 기능을 가진 모듈을 묶어서 하나의 계층을 만들고

계층간의 통신을 통해 운영체제를 구현하는 방식은?

           계층형 구조 커널

 

38. 오늘날의 운영체제의 대부분으로 사용되는 커널 구조는?

           계층형 구조 커널

 

39. 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공하는

커널 구조는?

           마이크로 구조 커널

40. 운영체제와 응용 프로그램 사이에서 작동하는 프로그램의 구조를 가진 것은?

           가상머신

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1장 연습문제

1. 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어는 무엇인가?

 

2. 가전제품과 같이 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 무엇이라고 하는가?

 

3. 사용자가 원하는 기능을 수행하기 위해 컴퓨터 자원을 사용하는 소프트웨어는 무엇인가?

 

4. 운영체제가 없는 컴퓨터에서는 어떤 문제가 발생하는지 설명하시오

 

5. 기계와 사용자 사이에 명령을 전달하고 처리한 결과를 알려주는 것을 무엇이라고 하는가?

 

6. 프로그램과 데이터를 한 번에 입력한 후 작업의 최종 결과만 얻는 운영체제 방식을 무엇이라고 하는가?

 

7. 프로그램이 진행되는 도중에 사용자로부터 데이터를 입력받아 프로그램 진행에 반영할 수 있는 운영체제 방식을 무엇이라고 하는가?

 

8. CPU 사용 시간을 쪼개어 여러 개의 프로그램이 동시에 실행되는 것처럼 보이는 운영체제 방식을 무엇이라고 하는가?

 

9. 멀티프로그래밍 수준은 동시에 실행되는 작업의 개수를 나타낸다. 멀티프로그래밍 수준이 1인 시스템을 무엇이라고 하는가?

 

10. 멀티프로그래밍 수준이 2보다 크거나 같은 시스템을 두 개 이상 쓰시오.

 

11. 특정 작업이 일정 시간 안에 처리되도록 보장하는 시스템을 무엇이라고 하는가?

 

12. 작고 싼 컴퓨터를 네트워크로 묶어 대형 컴퓨터와 같은 일을 할 수 있도록 만든 시스템을 무엇이라고 하는가?

 

13. 서버 없이 말단 노드끼리 데이터를 주고받는 시스템을 무엇이라고 하는가?

 

14. 커널이 자신의 자원을 보호하기 위해 만든 함수의 집합을 무엇이라고 하는가?

 

15. 커널과 하드웨어 사이의 인터페이스를 무엇이라고 하는가?

 

16. 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성되어 있는 커널 구조를 무엇이라고 하는가?

 

17. 커널의 기능을 최소화하여 여러 컴퓨터에 이식하기 쉽게 만든 커널 구조를 무엇이라고 하는가?

 

18. 서로 다른 운영체제에서 하나의 응용 프로그램으로 작동할 수 있도록 만든 시스템을 무엇이라고 하는가?

 

 

 

 

 

 

 

 

 

 

 

1장 심화문제

1. 운영체제의 역할을 설명하시오

 

 

2. 운영체제의 목표를 설명하시오

 

 

3. CPU 집중 작업과 입출력 집중 작업에 대해 설명하시오

 

 

4. 실시간 시스템에 대해 설명하시오

 

 

5. 클라우드 컴퓨팅에 대해 설명하시오

 

 

6. API와 SDK를 비교하여 설명하시오

 

 

7. 단일형 구조 커널의 특징을 설명하시오

 

 

8. 마이크로 구조 커널의 특징을 설명하시오

 

 

 

 

Chapter. 02 컴퓨터의 구조와 성능 향상

1. CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조를 무엇이라고 하는가?

           폰노이만 구조

 

2. CPU의 속도와 관련된 단위는?

           클록

 

3. 클록틱이 발생하는 속도를 나타내는 단위는?

           헤르츠

 

4. 메모리와 주변장치를 연결하는 버스는 무엇인가?

           시스템 버스(FSB)

 

5. CPU 내부에 있는 장치를 연결하는 버스는 무엇인가?

           CPU 내부 버스(BSB)

 

6. CPU와 메모리는 각각 어떤 장치에 의해 속도가 평준화되는가?

           CPU 내부버스, 시스템 버스

 

7. CPU에서 데이터를 연산하는 장치는 무엇인가?

           산술논리 연산장치

 

8. CPU에서 작업을 지시하는 부분을 무엇이라고 하는가?

           제어장치

 

9. CPU내에 데이터를 임시로 보관하는 곳을 무엇이라고 하는가?

           레지스터

10. 메모리에서 가져온 데이터를 임시로 보관할 때 사용하는 레지스터는 무엇인가?

           데이터 레지스터

 

11. 일반 레지스터 혹은 범용 레지스터라고 불리는 레지스터 종류는 무엇인가?

           데이터 레지스터

 

12. 데이터 또는 명령어가 저장된 메모리의 주소를 담는 레지스터는 무엇인가?

           주소 레지스터

 

13. 사용자 프로그램에 의해 변경되는 레지스터는 무엇이라고 부르는가?

           사용자 가시 레지스터

 

14. 사용자가 임의로 변경할 수 없는 레지스터를 무엇이라고 하는가?

           사용자 불가시 레지스터

 

15. 다음 실행할 명령어의 주소를 가진 레지스터는 무엇인가?

           프로그램 카운터

 

16. 현재 실행중인 명령어를 저장하는 레지스터는 무엇인가?

           명령어 레지스터

 

17. 메모리에서 데이터를 가져오거나, 메모리에서 데이터를 보낼때 주소를 지정하는 레지스터는?

           메모리 주소 레지스터

 

18. 메모리에서 가져온 데이터나 메모리로 옮겨갈 데이터를 임시로 저장하는 레지스터는?

           메모리 버퍼 레지스터

 

19. 다음에 어떤 작업을 할지 지시하는 양방향의 제어 신호를 담는 버스는?

           제어 버스

 

20. 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할지 알려주는 위치정보를 단방향으로 담는 버스는?

           주소 버스

 

21. 제어 버스가 작업을 지시하고, 주소 버스가 위치를 가리키면 해당하는 데이터를 가져오는 양방향 버스는?

           데이터 버스

 

22. 버스에서 한 번에 전달할 수 있는 데이터의 최대 크기를 말하는 것은?

           대역폭

 

23. 전력이 끊기면 사라지는 메모리 유형은?

           휘발성 메모리

 

24. 일정 시간이 지나면 사라져 재생이 필요한 메모리의 종류는?

           DRAM

 

25. 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생이 필요없는 메모리는?

           SRAM

 

26. 클록틱이 발생할 때마다 데이터를 저장하는 동기 메모리는?

           SDRAM

 

27. 전력이 끊겨도 데이터가 사라지지 않는 메모리 유형은?

           비휘발성 메모리

28. 메모리 보호를 위해 현재 진행 중인 작업의 메모리 시작주소를 저장하는 레지스터는?

           경계 레지스터

 

29. 메모리 보호를 위해 현재 진행중인 작업이 차지하고 있는 메모리의 크기를 담는 레지스터는?

           한계 레지스터

 

30. 운영체제를 메모리에 올리는 과정을 무엇이라고 하는가?

           부팅

 

31. 부팅의 과정을 설명하시오

           주요 하드웨어가 제대로 작동하는지 확인 후 이상없으면

           하드디스크의 마스터 부트 레코드에 저장된 작은 프로그램을 메모리로 가져와 실행

           마스터 부트 레코드가 가리키는 부트스트랩 코드가 운영체제를 메로리로 가져옴

 

32. 속도에 차이가 있는 두 장치에서 그 차이를 완화하는 역할은 하는것을 무엇이라고 하는가?

           버퍼

 

33. CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼를 무엇이라고 하는가?

           스풀

 

34. 메모리와 CPU간의 속도차이를 완화하기 위한 장치는 무엇인가?

           캐시

 

35. CPU가 사용할 것으로 예상되는 데이터를 미리 가져다 놓는 것을 무엇이라고 하는가?

           미리 가져오기(Refetch)

 

 

36. CPU가 캐시에서 원하는 데이터를 찾았을 경우를 무엇이라고 하는가?

           캐시 히트

 

37. CPU가 캐시에서 원하는 데이터를 찾지 못했을 경우를 무엇이라고 하는가?

           캐시 미스

 

38. 컴퓨터의 성능향상을 할 수 있는 방법은 무엇이 있는가?

           캐시 적중률을 높인다.

 

39. 캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영하는 방식을 무엇이라고 하는가?

           즉시 쓰기

 

40. 캐시에 있는 데이터가 변경되면 변경된 내용을 모아서 주기적으로 반영하는 방식은 무엇인가?

           지연 쓰기

 

41. 즉시 쓰기와 지연 쓰기의 특성의 차이점을 쓰시오

           즉시 쓰기는 무결성을 확보하지만 성능이 낮아지고

           지연 쓰기는 무결성을 보장할 수 없지만 성능이 좋아진다.

 

42. 레지스터와 직접 연결되는 캐시를 무엇이라고 하는가?

           L1 캐시

 

43. 메모리와 연결되는 캐시를 무엇이라고 하는가?

           L2 캐시(일반 캐시)

 

 

 

44. 저장장치 계층 구조의 문제점은 무엇인가?

           중복되는 데이터의 일관성을 유지하는 것에서 문제가 발생한다. (지연 쓰기)

 

45. CPU가 직접 입출력장치에서 데이터를 가져오거나 보내는 방식은 무엇인가?

           폴링

 

46. CPU가 입출력장치의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 데이터를 처리하는 방식은 무엇인가?

           폴링

 

47. CPU의 작업과 저장장치 데이터의 이동을 독립적으로 운영하여 시스템 효율을 높이는 방식은?

           인터럽트

 

48. 인터럽트 동작 과정은 어떻게 되는가?

           CPU가 입출력 관리자에게 입출력 명령을 보낸다

           입출력 관리자는 명령을 수행한다.

           데이터 전송이 완료되면 입출력 관리자는 CPU에 인터럽트 신호를 보낸다.

 

49. 입출력 관리자가 메모리에 접근해야할 때 필요한 권한은?

           DMA(직접 메모리 접근)

 

50. 메모리의 일부분을 입출력 전용 부분으로 할당하는 기법은?

           메모리 매핑 입출력

 

51. 직접 메모리 접근 방식에서 메모리가 복잡해지는 문제를 해결하기 위해 고안된 방식은?

           메모리 매핑 입출력

 

 

52. CPU와 입출력 관리자가 동시에 메모리에 접근했을때 일어나는 결과를 무엇이라고 하는가?

           사이클 훔치기

 

53. 여러 개의 명령을 동시에 처리하여 컴퓨터의 성능을 향상하는 기법을 무엇이라고 하는가?

           병렬 처리

 

54. 명령어를 분할하여 여러 개의 명령어를 동시 실행 할 수 있게 하는 기법은?

           파이프라인 기법

 

55. CPU 코어를 여러개 두어 병렬 처리를 할 수 있게 하는 기법은?

           슈퍼스칼라 기법

 

56. 병렬 처리 시 고려해야할 사항은?

           상호 의존성이 없어야한다.

           각 단계의 시간을 거의 일정하게 맞추어야한다.

           전체 작업 시간을 몇 단계로 나눌지 계산해야한다.

 

57. 병렬 처리 기법 중에서 데이터의 의존성 때문에 발생하는 문제는 무엇인가?

           데이터 위험

 

58. 병렬 처리 기법 중에서 분기문으로 인해 발생하는 문제는 무엇인가?

           제어 위험

 

59. 벙렬 처리 기법 중에서 서로 다른 명령어가 같은 자원에 접근하려 할 때 발생하는 문제는?

           구조 위험

 

 

60. 파이프라인을 처리할 수 있는 코어를 여러개 구성하여 여러개의 명령어가 실행되는 방식은?

           슈퍼스칼라 기법

 

61. 파이프라인의 각 단계를 세분하여 한 클록 내에 여러 명령어를 처리하는 기법은?

           슈퍼파이프라인 기법

 

62. 슈퍼파이프라인 기법을 여러 개의 코어에서 동시에 수행하는 방식은?

           슈퍼파이프라인 슈퍼스칼라 기법

 

63. CPU가 병렬 처리를 지원하지 않을 경우 소프트웨어적으로 병렬 처리하는 방식은?

           VLIW

 

64. 동시에 수행할 수 있는 명령어들을 컴파일러가 추출하고 하나의 명령어로 압축하여 실행하는 기법은?

           VLIW

 

 

 

 

 

 

 

 

 

 

 

 

 

2장 연습문제

1. CPU의 구성에 대해 설명하시오

 

 

2. 폰 노이만 구조의 가장 중요한 특징을 설명하시오

 

 

3. 버스의 종류를 나열하시오

 

 

4. 단방향 버스에 대해 설명하시오

 

 

5. 다음에 실행할 명령어의 주소를 가지고 있는 레지스터는?

 

 

6. 다음에 실행할 명령어를 보관하는 레지스터는?

 

 

7. 메모리 주소를 보관하는 레지스터는?

 

 

8. 메모리에 저장할 데이터나 메모리에서 가져온 데이터를 임시로 보관하는 레지스터는?

 

 

 

 

9. 주소 버스와 연결되어 있는 레지스터는 무엇인가?

 

 

10. 데이터 버스와 연결되어 있는 레지스터는 무엇인가?

 

 

11. 프로그램을 보호하기 위해 사용하는 두 가지 레지스터는 무엇인가?

 

 

12. 속도 차이가 나는 두 장치 사이에서 속도를 완화하는 장치를 무엇이라고 통칭하는가?

 

 

13. 응용 프로그램과 프린터 사이에서 속도 차이를 완화하는 소프트웨어를 무엇이라고 하는가?

 

 

14. 부팅 시 운영체제를 메모리로 가져오기 위해 사용하는 작은 프로그램은 무엇인가?

 

 

15. 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배열하는 방식을 무엇이라고 하는가?

 

 

16. 작업의 효율성을 높이기 위해 CPU가 입출력 관리자에게 입출력 작업을 요청하면 작업을 마친 입출력 관리자는 CPU에 무엇을 보내는가?

 

 

17. CPU 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한을 무엇이라고 하는가?

 

18. CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 기법을 무엇이라고 하는가?

 

 

19. CPU가 병렬 처리를 지원하지 않을 때 소프트웨어적으로 병렬 처리를 하는 기법을 무엇이라고 하는가?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2장 심화문제

1. 컴퓨터에서 클록이 하는 역할을 설명하시오

 

 

2. 프로그램 카운터 레지스터의 역할을 설명하시오

 

 

3. 제어 버스, 주소 버스, 데이터 버스에 대해 설명하시오

 

 

 

4. 휘발성 메모리와 비휘발성 메모리를 비교하여 설명하시오

 

 

 

5. DDR SDRAM에 대해 설명하시오

 

 

 

6. 스풀에 대해 설명하시오

 

 

 

7. 즉시 쓰기 방식의 캐시와 지연 쓰기 방식의 캐시를 비교하여 설명하시오

 

 

 

8. 인터럽트 번호를 사용하는 이유를 설명하시오

 

 

 

9. 메모리 직접 접근에 대해 설명하시오

 

 

 

 

10. 메모리 매핑 입출력에 대해 설명하시오

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Chapter. 03 프로세스와 스레드

1. 저장장치에 저장되어있는 정적인 상태는 무엇을 가리키나?

           프로그램

 

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

           프로세스

 

3. 프로세스를 컴퓨터 시스템의 작업단위로 무엇이라고 부르는가?

           태스크

 

4. HDD에 있던 프로그램이 메모리로 올라오면서 운영체제에게 무엇을 할당받는가?

           PCB

 

5. 프로세스가 메모리에 올라와 실행 준비를 완료한 상태를 무엇이라고 하는가?

           생성 상태

 

6. 프로세스를 관리하는데 필요한 프로세스 제어 블록은 어떤 상태일 때 생성이되나?

           생성 상태

 

7. 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태는 무엇인가?

           준비 상태

 

8. 준비 상태에 있는 프로세스 중 하나가 CPU를 얻어 작업을 수행하는 상태는 무엇인가?

           실행 상태

 

 

 

9. 준비 상태의 프로세스 중 하나를 골라 실행 상태로 바꾸는 것을 무엇이라고 하는가?

           디스패치

 

10. 프로세스에 배당된 작업 시간을 무엇이라고 부르는가?

           타임 슬라이스, 타임 퀀텀

 

11. 프로세스가 자신에게 주어진 시간을 다 써서 준비 상태로 돌아가는 것을 무엇이라고 하는가?

           타임아웃

 

12. 입출력을 요구한 프로세스가 입출력이 완료될 때 까지 기다리는 상태를 무엇이라고 하는가?

           대기 상태

 

13. 대기 상태에서 입출력을 완료한 프로세스는 어떤 상태로 되는가?

           준비 상태

 

14. 프로세스 생성, 준비, 실행, 대기, 완료 다섯 가지 상태를 잃컫는 상태는 무엇인가?

           활성 상태

 

15. 프로세스가 작업을 일시적으로 쉬고 있는 상태를 무엇이라고 하는가?

           휴식 상태

 

16. 프로세스가 메모리에서 잠시 쫓겨난 상태를 무엇이라고 하는가?

           보류 상태

 

17. 프로세스 제어 블록의 첫 번째 블록에 저장되는 것은?

           포인터

 

18. 프로세스 제어 블록의 두 번째 블록에 저장되는 것은?

           프로세스 상태

 

19. PCB의 나머지 요소들을 기술하시오

           프로세스 구분자

           프로그램 카운터

           프로세스 우선순위

           레지스터 정보

           메모리 정보

           할당 자원 정보

           계정 정보

           PPID, CPID

 

20. CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업은 무엇인가?

           문맥 교환

 

21. 문맥 교환의 과정을 기술하시오

           실행 상태에서 나가는 프로세스의 PCB에는 지금까지의 작업 내용을 저장하고

           실행 상태로 들어오는 프로세스의 PCB내용으로 CPU가 다시 세팅된다.

 

22. PCB를 교환하는 작업을 무엇이라고 하는가?

           문맥 교환

 

23. 문맥 교환이 일어나는 경우를 예시를 들어 설명하시오

           인터럽트가 걸렸을 때도 발생한다.

 

 

24. 프로세스 구조를 설명하시오

           코드 영역, 데이터 영역, 힙 영역, 스택 영역

 

25. 프로세스에서 프로그램 본문이 기술된 영역을 무엇이라고 하는가?

           코드 영역

 

26. 프로세스에서 코드가 전역변수, 정적변수 가 저장되어있는 영역을 무엇이라고 하는가?

           데이터 영역

 

27. 프로세스에서 프로세스 실행을 위한 부수적인 데이터를 모아놓은 영역을 무엇이라고 하는가?

           스택 영역

 

28. 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 함수를 무엇이라고 하는가?

           fork()

 

29. fork()함수 실행 시 복제되는 부분과 그렇지 않은 부분을 기술하시오

           복제된 프로세스는 PID, PPID, CPID 가 변경되고, 메모리 위치 또한 다르다

           그 외의 데이터는 복제한 프로세스를 복제하여 같다.

 

30. fork()함수의 장점을 기술하시오

           프로세스 생성 속도가 빠르다. (HDD로부터 프로그램을 가져오는것이 아닌 복제하기 때문)

           추가 작업 없이 자원 상속이 가능하다. (부모 프로세스를 그대로 복제하기 때문)

           시스템 관리를 효율적으로 할 수 있다. (부모 프로세스가 자식 프로세스 자원을 관리)

 

 

 

 

31. 기존의 프로세스를 새로운 프로세스로 전환하는 함수는 무엇인가?

           exec()

 

32. exec()를 사용하는 목적을 기술하시오

           프로세스의 구조체를 재활용하기 위해서이다.

 

33. exec()함수의 장점을 쓰시오

           이미 만들어진 PCB, 메모리 영역, 부모-자식 관계를 그대로 사용할 수 있다.

           새로운 코드 영역만 가져오면 된다.

 

34. exec()함수의 동작 과정을 쓰시오

           코드 영역:  기존 내용을 지우고, 새로운 코드로 바꿔버린다.

           데이터 영역 : 새로운 변수로 채워진다.

           스택 영역 : 리셋된다.

           레지스터 정보또한 리셋된다.

           즉, PID, PPID, CPID를 제외하고 모두 새로운 내용으로 바꾼다.

 

35. init 프로세스를 만든 다음 나머지 프로세스를 init프로세스의 자식으로 만드는 구조를 무엇이라고 하는가?

           프로세스 계층 구조

 

36. 프로세스 계층 구조의 장점을 기술하시오

           여러 작업의 동시 처리가 가능하다.

           프로세스를 재사용 할 수있으며, 자원 회수가 용이하다.

 

 

 

 

37. 자식 프로세스가 작업을 마치지 않았을때 부모 프로세스가 먼저 종료되거나, 자식 프로세스가 비정상적으로 종료되는 현상을 무엇이라고 하는가?

           고아 프로세스(좀비 프로세스)

 

38. 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위를 무엇이라고 하는가?

           스레드

 

39. 프로세스와 스레드의 차이점을 쓰시오

           프로세스는 약하게 연결되어있기 때문에 프로세스 간 통신이 필요하지만

           스레드는 강하게 연결되어있어 별도의 통신이 필요없이 자원을 공유한다.

 

40. 프로세스 내 작업을 여러 개의 스레드로 분할함으로써 작업의 부담을 줄이는 방식은?

           멀티스레드

 

41. 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법

           멀티태스킹 (시분할 시스템)

 

42. CPU를 여러 개 사용하여 여러 개의 스레드를 동시에 처리하는 작업환경은?

           멀티프로세싱

 

43. 파이프라인 기법을 이용하여 동시에 여러 스레드를 처리하도록 만든 병렬 처리 기법은?

           CPU 멀티스레드

 

44. 멀티스레드와 CPU 멀티스레드를 비교하시오

           멀티스레드는 운영체제가 소프트웨어적으로 프로세스를 작은 단위의 스레드로 분할한다.

           CPU 멀티스레드는 하드웨어적인 방법으로 하나의 CPU에서 여러 스레드를 동시에 처리한다.

 

45. fork() 함수의 단점

           낭비적인 요소가 많다. 코드 영역과 데이터 영역의 일부가 메모리에 중복되서 존재한다.

 

46. 스레드 등장 배경

           비슷한 일을 하는 2개의 프로세스를 fork()로 만드는 대신

           코드, 데이터 등을 공유하면서 여러 개의 일을 하나의 프로세스 내에서 할 수 있도록

           하기 위해서이다.

 

47. 프로세스 영역 두가지를 설명하시오

           동적 영역 : 스레드가 작업을 하면서 값이 변동되는 영역

           정적 영역 : 전역변수, 코드 등 값이 변동되지 않는 영역

 

48. 멀티스레드의 장점

           자원의 중복을 피함으로써 낭비를 막을 수 있다.

           하나의 프로세스에서 여러 스레드를 사용하면 작업 효율이 증가한다.

           응답성 향상

           자원 공유

           효율성 향상

           다중 CPU 지원

 

49. 멀티스레드 단점

           모든 스레드가 자원을 공유하기 때문에 한 스레드에 문제가 생기면 전체 프로세스에 영향

 

50. 멀티스레드 모델을 기술하시오

           커널 스레드, 사용자 스레드

 

 

51. 사용자 스레드의 특징을 쓰시오

           문맥 교환이 필요없어서 작업 속도가 빠르지만 프로세스의 타임 슬라이스를 여러 스레드가

           공유하기 때문에 여러 개의 CPU를 동시에 사용할 수 없다.

 

52. 커널 스레드의 특징을 쓰시오

           문맥 교환으로 인해 느리게 작동하지만, 보안성이 보장된다.

 

53. 사용자 스레드와 커널 스레드를 혼합한 방식의 스레드 모델을 무엇이라고 하는가?

           멀티레벨 스레드 (하이브리드 스레드)

 

54. main() 함수가 있을때 return 0; 혹은 exit(0) 을 사용하는 이유는?

           자식 프로세스가 끝났음을 부모 프로세스에 알리기 위함이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3장 연습문제

1. 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받아야 하는가?

 

 

2. 프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태는 무엇인가?

 

 

3. 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태는 무엇인가?

 

 

4. CPU 스케줄러가 준비 상태에 있는 프로세스 중 하나를 골라 CPU를 할당하는 작업을 무엇이라고 하는가?

 

 

5. 유닉스에서 Ctrl+Z키를 눌러 프로세스가 중단되면 프로세스는 어떤 상태로 바뀌는가?

 

 

6. 실행 상태에서 하나의 프로세스가 나가고 새로운 프로세스가 들어오는 상황을 무엇이라고 하는가?

 

 

7. 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 시스템 호출은 무엇인가?

 

 

8. 프로세스의 골격은 그대로 둔 채 코드 영역만 바꾸는 시스템 호출은 무엇인가?

 

 

 

9. 부모 프로세스가 기다리지 않아 자원이 회수되지 못하고 계속 살아 있는 프로세스는 무엇인가?

 

 

10. 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위로서 가벼운 프로세스라고 불리는 것은 무엇인가?

 

 

11. 고아프로세스를 방지하기 위해 부모 프로세스는 어떤 시스템 호출을 사용하는가?

 

 

12. 작업이 끝난 프로세스의 자원을 회수하는 행위를 무엇이라고 하는가?

 

 

13. 모든 프로세스를 부모-자식 관계로 만들어 자원 회수를 용이하게 하는 프로세스의 구조는 무엇인가?

 

 

 

 

 

 

 

 

 

 

 

 

 

3장 심화문제

1. 다섯 가지 프로세스 상태도를 그리시오

 

 

2. 프로세스의 상태 중 휴식 상태와 보류 상태에 대해 설명하시오.

 

 

3. 프로세스 제어 블록의 구성에 대해 설명하시오

 

 

4. 문맥 교환에 대해 설명하시오

 

 

5. 프로세스를 구성하는 코드 영역, 데이터 영역, 스택영역에 대해 설명하시오

 

 

6. fork() 시스템 호출의 장점을 설명하시오

 

7. exec() 시스템 호출을 사용하는 이유를 설명하시오

 

8. 프로세스 계층 구조의 장점을 설명하시오

 

 

9. 멀티스레드, 멀티태스킹, 멀티프로세싱, CPU 멀티스레드를 비교하여 설명하시오

 

 

 

Chapter. 04 CPU 스케줄링

1. 가장 큰 틀에서 이루어지는 CPU 스케줄링을 무엇이라고 하는가?

           고수준 스케줄링(장기 스케줄링, 작업 스케줄링, 승인 스케줄링)

 

2. 시스템 내의 전체 작업수를 조절하는 것으로, 어떤 작업을 시스템이 받아들일지 거부할지 결정하는 것을 무엇이라고 하는가?

           고수준 스케줄링

 

3. 가장 작은 단위의 스케줄링으로, 어떤 프로세스에 CPU를 할당할지 어떤 프로세스를 대기 상태로 보낼지 등 을 결정하는 것은 무엇인가?

           저수준 스케줄링(단기 스케줄링)

 

4. 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부화를 막는 것을 무엇이라고 하는가?

           중간 수준 스케줄링

 

번외.

           고수준 스케줄링 = 작업 여부 판단

           중간수준 스케줄링 = 보류 활성화로 전체 시스템의 활성화된 프로세스를 조절

           저수준 스케줄링 = CPU 할당 순서, 프로세스 상태 결정

 

5. 스케줄링의 목적을 기술하시오

           공평성 : 모든 프로세스가 자원을 공평하게 배정받는다.

           효율성 : 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링한다.

           안정성 : 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 조치해야한다.

           확장성 : 프로세스가 증가해도 시스템이 안정적으로 작동해야한다.

           반응 시간 보장 : 적절한 시간 안에 프로세스의 요구에 반응해야한다.

무한 연기 방지 : 특정 프로세스의 요구에 반응해야한다.

6. 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식은 무엇인가?

선점형 스케줄링

 

7. 어떤 프로세스가 CPU를 할당받아 실행중이면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식이다.

비선점형 스케줄링

 

8. 선점형 스케줄링의 예시와 특징을 설명하시오

인터럽트 처리가 선점형 스케줄링이라고 볼 수 있다.

선점형 스케줄링은 문맥 교환으로 인한 오버헤드 발생이 단점이다. 시분할 시스템에서 사용

 

8. 비선점형 스케줄링의 예시와 특징을 설명하시오

스케줄러의 작업량이 선점형에 비해 적고 오버헤드도 적다.

CPU 사용 시간이 긴 프로세스가 있으면, 다른 여러 프로세스가 오래 기다리게 되어

시스템 처리율이 감소한다. 이는 일괄 작업 시스템에서 사용하던 방식이다.

 

번외. 대부분의 CPU 스케줄러는 우선순위를 사용하고, 커널 프로세스의 우선순위가 일반 프로세스보다 높다.

 

번외. 우선순위가 높나는 의미는 더 빨리 자주 길행된다는 의미이다.

 

9. 프로세스는 CPU를 사용하여 작업을 하는 실행 상태 또는 입출력을 요청하여 완료되기까지 기다리는 대기 상태에 있는데, 이때 CPU를 할당받아 실행하는 작업을 무엇이라고 하는가?

           CPU burst

10. 프로세스가 작업 형태에 따라 나뉘어 지는 명칭은?

           CPU 집중 프로세스

           입출력 집중 프로세스

 

11. CPU 집중 프로세스와 입출력 집중 프로세스가 같이 있을때, 먼저 처리해야 할 프로세스는?

           입출력 집중 프로세스로, 처리시간이 더 짧은 것을 우선으로 한다.

 

12. 프로세스 간에서도 사이클 훔치기가 일어나는데 어떤 상황인지 설명하시오

           입출력 집중 프로세스와 CPU 집중 프로세스가 있을때 입출력 집중 프로세스가 먼저 실행

상태로 들어가는 것을 말한다.

 

13. 사용자와 상호작용이 가능하여 상호작용 프로세스라고 불리는 프로세스는 무엇인가?

           전면 프로세스

 

14. 사용자와 상호작용이 없는 프로세스는 무엇인가?

           후면 프로세스

 

번외.

           우선순위 높음                                 우선순위 낮음

           커널 프로세스                                 일반 프로세스

           전면 프로세스                                 후면 프로세스

           대화형 프로세스                                 일괄 처리 프로세스

           입출력 집중 프로세스                      CPU 집중 프로세스

 

15. 프로세스의 우선순위를 배정하는 방식 두 가지를 말하시오

           고정 우선순위, 변동 우선순위

 

 

 

 

 

16. 운영체제가 프로세스에 우선순위를 부여하면 프로세스가 끝날 때 까지 바뀌지 않는 방식은 어떤 방식인가?

           고정 우선순위 방식

 

17. 프로세스 생성 시 부여받은 우선순위가 프로세스 작업 중간에 변하는 방식은 어떤 방식인가?

           변동 우선순위 방식

 

18. 낮은 우선순위를 높은 우선순위로 바꾸는 것을 무엇이라고 하는가?

           반전 우선순위

 

19. 시스템 효율이 증가하는 우선순위 스케줄링 방식은 무엇인가?

           반전 우선순위

 

20. 준비 상태의 다중 큐와 대기상태의 다중 큐를 비교하여 설명하시오

           준비 큐는 하나의 프로세스를 꺼내어 CPU에 할당하지만

           대기 큐는 여러 개의 프로세스를 동시에 꺼내어 준비상태로 옮긴다.

 

21. CPU 스케줄링 알고리즘의 선택 기준을 정리하시오

           CPU 사용률 - CPU 사용 시간

           처리량 - 단위 시간당 작업을 마친 프로세스의 수

           대기 시간 - 작업을 요청한 프로세스가 대기한 시간

           응답 시간 - 프로세스 시작 후 첫 번째 출력 혹은 반응이 나올 때까지 걸리는 시간

           반환 시간 - 프로세스가 생성된 후 사용 자원을 모두 반환하는 데까지 걸리는 시간

 

 

 

 

 

번외. 스케줄링 종류

비선점형 : FCFS, SJF, HRN

선점형   : RR, SRT, Multilevel Queue, Multilevel Feedback Queue

둘다가능 : Priority Queue

 

22. FCFS(First-Come-Firtst-Service) 스케줄링

           레디 큐에 도착한 순서대로 CPU를 할당하는 비선점형 방식

 

23. FCFS 스케줄링 평가

           공평하게 프로세스를 처리할 수 있고, 구현이 단순하지만

           콘보이 효과로 인해 시스템 효율이 떨어지게 된다.

 

24. SJF(Shortest Job First) 스케줄링

           처리시간이 가장 짧은 프로세스를 먼저 처리하는 비선점형 방식이다

 

25. SJF 평가

           처리시간이 짧은 것을 먼저 처리하여 효율이 좋으나

프로세스 작업길이를 정확하게 예측하기가 어려우며 공평성을 보장하지 못한다.

          

26. HRN(Highest Response Ratio Next) 스케줄링

           서비스를 받기 위해 기다린 시간과 CPU 사용 시간을 고려하여 스케줄링하는 비선점형 방식

 

27. HRN 알고리즘에서 우선순위를 어떻게 계산하는가?

           우선순위 = (대기시간 + CPU 사용시간) // CPU 사용시간

 

28. HRN 알고리즘 평가

           아사 현상을 완화할 수 있지만, 공평성이 위배된다.

29. 라운드 로빈(Round-Robin) 스케줄링

프로세스가 할당받은 시간만큼 작업을 하다가 타임 아웃 시 준비 큐의 맨 뒤로가서 차례를 기다리는 선점형 방식이다.

 

30. 라운드 로빈 평가

선점형 알고리즘의 유형은 문맥교환의 오버헤드가 발생하기 때문에 동일한 평균 대기시간을갖는 비선점형 방식(FCFS, SJF 등) 에 비해서 효율이 좋지는 않다.

 

31. 라운드 로빈 구현시 고려사항

           타임 슬라이스가 너무 크면, FCFS와 같은 알고리즘이 된다.

그렇지만 타임 슬라이스가 너무 작으면, 문맥 교환이 너무 자주 일어나기 때문에 성능이 하락한다. (유닉스 기본 100밀리초)

 

32. SRT(Shortest Remaining Time)스케줄링

SJF와 라운드 로빈 스케줄링을 혼합한 방식으로 최소 잔류 시간 우선 스케줄링이라고 한다.

SJF 스케줄링의 선점형 방식이라고 볼 수 있다.

남은 작업시간이 가장 짧은 프로세스를 처리하는 방식

 

33. SRT(Shortest Remaining Time) 평가

프로세스의 남은 시간을 주기적으로 계산하는데에 발생하는 오버헤드

남은 시간이 더 적은 프로세스와 문맥 교환에 발생하는 오버헤드

운영체제가 프로세스 작업 시간을 예측하기 어렵고, 아사 현상이 발생 할 수 있다.

 

 

 

 

 

 

34. 우선순위 큐(Priority Queue) 스케줄링

           어떤 것을 기준으로 우선순위를 부여하는지에 대해서 다양한 스케줄링을 구현 할 수 있다.

 

35. 우선순위 큐로 다른 스케줄링 알고리즘을 구현하는 방법을 각각 쓰시오

           Priority -> SJF = 작업시간이 짧은 프로세스에 높은 우선순위를 부여

           Priority -> HRN = 작업 시간이 짧거나 대기 시간이 긴 프로세스에 높은 우선순위를 부여

Priority -> SRT = 남은 시간이 짧은 프로세스에 높은 우선순위 부여

 

36. 우선순위 큐에서 우선순위 특징에 따라 나뉘어지는 알고리즘을 쓰시오

           고정 우선순위 알고리즘, 변동 우선순위 알고리즘

 

37. 다단계 큐(Multilevel Queue) 스케줄링

           우선순위별로 준비 큐를 여러 개 사용하는 방식으로

고정된 우선순위에 대한 준비 큐가 정해져 있는 선점형 방식이다.

이때 각 준비 큐에는 각기 다른 스케줄링 알고리즘을 사용 할 수 있다.

* 고정 우선순위

 

38. 다단계 큐 스케줄링을 사용하는 예시를 쓰시오

           전면 프로세스의 반응 속도를 높이기 위해 타임 슬라이스를 작게하는 RR

           후면 프로세스는 사용자의 상호작용이 없으므로 FCFS로 처리할 수 있다.

 

39. 다단계 큐의 문제점을 쓰시오

           상위 레벨 큐의 작업이 모두 끝나야 하위레벨이 진행 될 수 있는 것이 문제이다.

           상위 우선순위 큐에 작업이 계속 들어오게되면 하위 프로세스들은 아사 현상을 겪는다.

 

 

 

 

40. 다단계 큐의 단점을 보완하고자 고안한 알고리즘은 무엇인가?

           다단계 피드백 큐(Multilevel Feedback Queue)

 

41. 다단계 피드백 큐(Multilevel Feedback Queue)는 무엇인가?

           우선 순위 큐를 여러개 가진 형태에서, CPU를 할당 받은 프로세스는 우선순위가 고정된

           준비 큐로 돌아가서 대기하는 것이 아닌 한 단계 낮은 레벨의 준비 큐로 돌아가서 대기한다.

           * 변동 우선순위

 

42. 다단계 피드백 큐(Multilevel Feedback Queue)를 설계할 때 고려해야 할 점을 쓰시오

           커널 프로세스가 일반 프로세스의 큐에 삽입 되지 않아야 한다는점

           각 준비 큐에 따라 타임 슬라이스의 크기가 다르고, 우선순위가 낮은 큐일 수록

           더 많은 타임 슬라이스를 배정한다.

 

43. 프로세스가 실행 중인 명령어로 인해 발생하는 인터럽트를 무엇이라고 하는가?

           동기적 인터럽트(사용자 인터럽트)

 

번외. 동기적 인터럽트의 예시

           오버플로우, 언더플로우, 사용자가 의도적으로 프로세를 종료, 입출력 장치 인터럽트 등

 

44. 실행 중인 명령어와 무관하게 발생하는 인터럽트를 무엇이라고 하는가?

           비동기적 인터럽트

 

45. 인터럽트에는 각각 번호가 정해져있는데 이를 무엇이라고하는가?

           IRQ

46. 커널 모드와 사용자 모드를 변환해가며 작업을 처리하는 것을 무엇이라고 하는가?

           이중모드

4장 연습문제

 

1. 시스템 내 전체 프로세스의 수를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라고 불리는 스케줄링 수준은 무엇인가?

 

2. 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링은 무엇인가?

 

3. 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링은 무엇인가?

 

4. 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 불리는 것은 무엇인가?

 

5. 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가?

 

6. 준비 큐에 있는 프로세스 중 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가?

 

7. SJF 스케줄링 알고리즘의 단점으로 크기가 큰 작업이 계속 뒤로 밀리는 현상을 무엇이라고 하는가?

 

8. 아사 현상을 해결하는 방법을 설명하시오

 

 

 

 

 

 

9. 서비스를 받기 위해 대기한 시간과 CPU 사용 시간을 고려하여 우선순위를 정하는 스케줄링 알고리즘은 무엇인가?

 

10. 프로세스가 할당받은 시간동안 작업하다가 작업을 완료하지 못하면 준비 큐의 맨 뒤로 가서 다음 자기 차례가 올 때까지 기다리는 선점형 스케줄링 알고리즘 중 가당 단순한 것은 무엇인가?

 

11. 타임 슬라이스의 크기와 문맥 교환의 관계를 설명하시오

 

12. 기본적으로 라운드 로빈 방식을 사용하지만, CPU를 할당받을 프로세스를 선택 할 때 남아있는 작업 시간이 가장 적은 것을 선택하는 알고리즘은 무엇인가?

 

13. 우선순위에 따라 준비 큐를 여러 개 사용하며 고정형 우선순위를 적용하는 스케줄링 알고리즘은 무엇인가?

 

14. 우선순위에 따라 준비 큐를 여러 개 사용하며, 프로세스가 CPU를 사용한 후 우선순위가 낮아지는 특징을 가진 스케줄링 알고리즘은 무엇인가?

 

15. 다단계 피드백 큐 스케줄링에서 마지막 큐에 있는 프로세스의 타임 슬라이스 크기는 얼마인가?

 

16. 다단계 피드백 큐 스케줄링에서 우선순위가 낮아질수록 타임 슬라이스의 크기는 어떻게 변하는가?

 

17. 다단계 피드백 큐 스케줄링에서 마지막큐는 어떤 스케줄링 알고리즘 처럼 작동하는가?

 

 

 

 

 

 

 

4장 심화문제

 

1. 스케줄링의 단계와 그 특징을 설명하시오

 

 

 

2. 스케줄링의 목적을 설명하시오

 

 

3. 선점형 스케줄링과 비선점형 스케줄링을 비교하여 설명하시오

 

 

 

 

4. 스케줄링 알고리즘의 선택 기준을 설명하시오

 

 

 

 

5. FCFS, SJF, HTN 스케줄링의 특징을 설명하시오

 

 

 

 

 

 

 

6. 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐 스케줄링의 특징을 설명하시오

 

 

 

 

 

 

 

 

 

7. 아사 현상과 에이징에 대해 설명하시오

 

 

 

 

 

 

8. 타임 슬라이스의 크기를 정하는 것과 시스템 효율성에 대해 설명하시오

 

 

 

 

 

 

 

 

 

Chapter. 05 프로세스 동기화

 

1. 프로세스 내부 데이터 통신

           하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신이다.

           스레드는 전역변수, 파일을 이용하여 데이터를 주고 받는다.

 

2. 프로세스 간 데이터 통신

           여러 프로세스끼리 통신하는 경우로, 공용 파일 또는 운영체제가 제공하는 파이프를 사용

 

3. 네트워크를 이용한 데이터 통신

           여러 컴퓨터간의 프로세스 통신으로 소켓을 이용하여 데이터를 주고받는다.

 

4. 통신 방향에 따른 통신 분류를 설명하시오

           양방향 통신 : 동시에 양쪽 방향으로 데이터를 전송할 수 있다.

           반양방향 통신 : 양쪽 방향으로 데이터를 전송할 수 있지만 동시에는 불가능하다.

           단방향 통신 : 한쪽으로만 데이터를 전송할 수 있다.

 

5. 대부분의 통신은 양방향 통신이지만, 전역 변수는 단방향 통신이다.

           따라서 양방향 통신을 구현하려면 전역 변수를 2개 사용해야한다.

 

6. 수신 측에서, 전역 변수의 값을 반복적으로 점검하는 행위를 무엇이라고 하나?

           바쁜 대기

 

7. 바쁜 대기 문제를 해결하기 위해 데이터가 도착했음을 알려주는 것을 무엇이라고 하나?

           동기화

 

 

8. 프로세스 간 통신 중에서, 동기화 기능의 유무로 나누어지는데 이때 나누어진 통신들의 종류는?

           동기화 기능 보유 = 대기가 있는 통신 = 동기화 통신

           동기화 기능 없음 = 대기가 없는 통신 = 비동기화 통신

 

9. 동기화 기능을 가진 대기가 있는 통신에 대해서 설명하시오

           데이터를 받는 쪽은 데이터가 도착할 때 까지 자동으로 대기 상태에 머물러 있다.

           - 동기화로 데이터 수신을 자동 확인하기 때문

 

10. 동기화 기능을 갖지 않은 대기가 없는 통신에 대해서 설명하시오

          
데이터를 반는 쪽은 바쁜 대기를 사용하여 데이터 도착 여부를 수시로 판단한다.

11. 대기가 있는 통신과, 대기가 없는 통신의 예시를 쓰시오

           - 대기가 있는 통신 

                      파이프, 소켓

           - 대기가 없는 통신

                      전역변수, 파일

 

12. 공동으로 관리하는 메모리를 사용하여 데이터를 주고받는 통신은 무엇인가?

           전역 변수 통신 (대기가 없는 통신 = 바쁜 대기 사용)

 

13. 전역 변수 통신(대기가 없는 통신 = 바쁜 대기 사용)의 과정을 쓰시오

           데이터를 보내는 쪽에서 전역 변수나 파일에 값을 쓴다.

           데이터를 받는 쪽에서 전역 변수의 값을 읽는다.

           ex) 부모 프로세스가 전역 변수를 선언한 후, 자식 프로세스를 만들면 부모-자식 통신 가능

 

 

 

 

14. 파일을 이용한 통신(대기가 없는 통신 = 바쁜 대기 사용)의 과정을 쓰시오

           파일 열기 -> 파일 읽기/쓰기 -> 파일 닫기

 

15. 파일을 이용한 통신에 대한 특징을 쓰시오

           부모-자식 프로세스 간 통신에 많이 사용되고, 동기화가 사용되지 않는다.

           이때 부모 프로세스가 wait()함수를 이용하여 자식 프로세스의 작업이 끝날 때까지 대기함

 

16. 파이프를 이용한 통신(대기가 있는 통신 = 동기화 사용)은 무엇인가?

           파이프는 운영체제가 제공하는 동기화 통신 방식으로써

           전역 변수를 이용한 양방향 통신처럼 파이프를 2개 두어야 양방향 통신이 가능한다.

          

17. 부모-자식 프로세스 혹은 서로 관련있는 프로세스끼리 통신에 사용되는 것은 무엇인가?

이름 없는 파이프(일반적인 파이프)

 

18. FIFO라 불리는 특수 파일을 이용하여 서로 관련 없는 프로세스 간 통신에 사용

이름 있는 파이프

 

19. 소켓을 이용한 통신(대기가 있는 통신 = 동기화 사용)은 무엇인가?

           다른 컴퓨터에 있는 프로세스 끼리 원격 프로시저 호출이나 소켓을 이용하여 통신하는 것

 

20. 동기화를 지원하는 통신 방법은 무엇이 있는가?

           파이프 통신, 소켓 통신

21. 동기화를 지원하지 않는 통신 방법은 무엇이 있는가?

           전역 변수, 파일

22. 통신 간에 open(), close() 함수를 호출하는 통신 방법과 그렇지 않은 방법을 쓰시오

           open(), close()를 사용하는 통신 : 파일, 파이프, 소켓

           open(), close()를 사용하지 않는 통신 : 전역 변수

23. 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 가리키는 용어는?

           공유 자원

 

24. 2개 이상의 프로세스가 공유 자원을 동시에 읽거나 쓰는 상황을 무엇이라고 하는가?

           경쟁 조건

 

25. 공유 자원 접근 순서에 따라 실행 결과가 달라지는 영역을 무엇이라고 하는가?

           임계 구역(Critical Section)

 

26. 프로세스들이 동시에 진입할 수 없도록 제한하는 구역은 어디인가?

           임계 구역(Critical Section)

 

27. 임계구역과 관련된 전통적인 문제로, 공유 자원에 접근하는 코드가 동시에 실행되면서 발생하는 문제는 무엇인가?

           생산자-소비자 문제

 

28. 임계구역에서의 문제를 해결할 수 있는 조건을 설명하시오

           * 상호 배제 : 한 프로세스가 임계구역에 들어가면 다른 것은 임계구역에 들어갈 수 없다.

           * 한정 대기 : 특정 프로세스가 임계구역에 진입하지 못하면 안된다.

           * 진행의 융통성 : 한 프로세스가 다른 프로세스의 진행을 방해하면 안된다.

 

29. 임계구역 문제를 해결하는 방법은 무엇인가?

           잠금(lock)을 이용한다.

 

 

 

 

 

while(lock == 2);                                                       while(lock == 1);

대기하기                                                                  대기하기

임계구역                                                                  임계구역

lock = 2                                                                  lock = 1;

 

위 코드는 잠금을 확인하는 문장이 하나이므로 상호 배제와 한정 대기 조건을 충족한다.

 

lock1 = true;                                                                  lock2 = true;

타임아웃 발생 지점 while(lock2 == true);                                                       while(lock1 == true)

대기하기                                                                              대기하기

임계구역                                                                             임계구역

lock1 = false                                                                  lock2 = false;

 

위 코드는 lock1을 true 만들고 타임아웃 된 후, lock2도 true 만들고 타임아웃된 상황인데

lock2 가 true 인 상황에서 다시 돌아오면, lock2 == true 무한 반복문에 걸려 대기하게된다.

 

30. 검사와 지정

           while(lock == true) -------------------> while(testandset(&lock) == true;

                      대기                                             l

           lock = true; ------------------------ l

           임계구역

           lock = false;

 

* 하드웨어의 지원을 받아 while(lock == true)과 lock = true; 문을 한꺼번에 실행한다.

 

 

 

31. 바쁜 대기를 사용하여 임계구역 해결 알고리즘을 구현하는 방식의 단점을 보완하는 방법은 무엇인가?

           세마포어

 

32. 세마포어의 작동 과정을 쓰시오

Semaphore(n); // 전역 변수 RS(공유 자원)를 n으로 초기화 RS는 현재 사용가능한 자원의 수

P(); // 잠금을 수행하는 코드, RS 가 0보다 크면 1만큼 감소시키고 임계 구역에 진입

   // RS가 0보다 작으면 0보다 커질 때 까지 기다린다.

임계구역

V();  // 잠금 해제와 동기화를 수행하는 코드로, RS + 1을 수행하고, 세마포어에서 기다리는

프로세스에 wake_up 신호를 보낸다.

 

 

33. 세마포어의 문제점을 쓰시오

           사용자가 고의로 세마포어를 사용하지 않거나, 

P() 연속 호출, P(), V() 를 반대로 사용 하는 등 실수로 인한 오류발생 가능성이 있다,

 

34. 공유 자원을 사용할 때 모든 프로세스가 세마포어 알고리즘을 따르도록 하는 것을 자동처리하는 기법은 무엇인가?

           모니터

 

35. 공유 자원을 내부적으로 숨기고 공유 자원에 접근하기 위한 인터페이스만 제공하는 것은 무엇인가?

           모니터

 

36. 모니터의 사용법을 설명하시오

임계구역으로 지정된 변수나 자원에 접근하고자 하는 프로세스는 직접 P(), V()를 사용하지않고 모니터에 요청한다.

모니터는 요청받은 작업을 모니터 큐에 저장 후 순서대로 처리하고 그 결과만 프로세스에 알려준다.

37. 모니터의 상태 변수의 종류는 무엇인지 설명하시오

           wait() = 모니터 큐에서 자신의 차례가 올 때까지 기다린다. P()

           signal() = 모니터 큐에서 대기중인 다음 프로세스에 순서를 넘겨준다. V()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5장 연습문제

 

1. 프로세스 간 통신에서 데이터를 양방향으로 전송 가능하지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 통신 방식은 무엇인가?

 

2. 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것을 무엇이라 하는가?

 

3. 프로세스 간 통신에서 대기가 없는 통신과 대기가 있는 통신의 예를 각각 제시하시오

 

 

4. 파이프를 이용하여 통신할 파이프를 2개 사용하는 이유는 무엇인가?

 

5. 공유 자원을 병행적으로 읽거나 쓰는 상황을 무엇이라고 하는가? *

 

6. 공유 자원의 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역은 무엇인가?

 

7. 임계구역 해결 조건 중 한 프로세스가 임계구역에 들어갔을때 다른 프로세스는 임계구역에 들어갈 수 없는 조건을 무엇이라 하는가?

 

8. 임계구역 해결 조건 중 한 프로세스가 다른 프로세스의 진행을 방해해서는 안 된다는 조건을 무엇이라 하는가?

 

9. 임계 구역 문제를 하드웨어적으로 해결한 방식으로, 하드웨어의 지원을 받아 명령어를 실행 하는 도중에 타임아웃이 걸리지 않도록 하는 방식을 무엇이라고 하는가? *

 

10. 세마포어의 Semephore(n)에서 n은 무엇을 가리키는가?

 

 

11. 세마포어에서 내부 변수를 RS라고 할 때 세마포어 P()의 내부 코드를 쓰시오 *

 

 

 

12. 세마포어에서 내부 변수를 RS라고 할 때 세마포어 V()의 내부 코드를 쓰시오 *

 

 

 

13. 세마포어가 제대로 작동하지 않는 경우를 설명하시오

 

 

 

14. 세마포어의 내부 코드도 타임아웃이 걸리면 문제가 발생할 수 있다. 그래서 내부 코드는 무엇으로 보호받는가? *

 

 

 

15. 공유자원을 내부적으로 숨기고 공유 자원에 접근하기 위한 인터페이스만 제공함으로써 자원을 보호하고 프로세스 간에 동기화를 시키는 것으로, 세마포어의 단점을 해결하면서 임계구역 문제를 해결한 방식은 무엇인가?

 

 

 

 

 

 

 

5장 심화문제

 

1. 프로세스 간 통신을 통신 방향에 따라 분류하여 설명하시오

 

 

 

 

2. 대기가 있는 통신과 대기가 없는 통신의 의미를 설명하고 적절한 예시를 드시오

 

 

 

 

3. 실생활의 예를 들어 임계구역 문제를 설명하시오

 

 

 

 

 

4. 다음 코드의 문제점을 설명하시오

                                            boolean lock = false; //공유변수

while(lock == true);                                            while(lock == true);

lock = true;                                                       lcok = true;

           임계구역                                                                  임계구역

lock = false;                                                       lock = false;

 

 

 

Chapter. 06 교착 상태

 

1. 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만을 기다리며 진행하지 못하는 상태를 무엇이라고 하는가?

           교착 상태

 

2. 교착상태와 아사현상의 차이점을 쓰시오

           아사 현상은 운영체제가 잘못된 정책을 사용하여 특정 프로세스의 작업이 지연되는 것이고

           교착 상태는 여러 프로세스가 작업을 진행하다보니 자연스럽게 생기는 문제이다.

 

3. 교착상태가 발생하는 경우는 어떤 것이 있는지 쓰시오

           시스템 자원 - 다른 프로세스와 공유할 수 없는 자원을 사용할 때

           공유 변수(파일) - 무한 대기를 막지 못했을 때

           응용 프로그램 - 일관성 유지를 위해 잠금 기능을 사용할 때

 

4. 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프로 표현한 것은?

           자원 할당 그래프

 

5. 여러 프로세스가 하나의 자원을 동시에 사용하는 것을 무엇이라고 하는가?

           다중 자원

 

6. 식사하는 철학자 문제에서 교착 상태가 발생하는 원인은 무엇인가?

           철학자들은 서로 포크를 공유할 수 없다 -> 상호배제

           철학자들은 다른 철학자의 포크를 뺏을 수 없다 -> 비선점

           철학자들은 왼쪽 젓가락을 잡은 채 오른쪽 젓가락을 기다린다 -> 점유 대기

           자원 할당 그래프가 원형이다.                                            -> 원형 대기

7. 교착 상태를 일으키는 조건을 쓰시오 *

           상호 배제 : 다른 프로세스와 자원을 공유하지 않았을 때

           비선점 : 다른 프로세스에 자원을 뺏기지 않을 때

           점유 대기 : 자원을 할당받은 상태에서 다른 자원을 기다릴 때

           원형 대기 : 점유와 대기를 하는 프로세스 간의 관계가 원을 이룰 때

 

위 네가지 조건을 만족해야 교착 상태가 일어날 수 있게 된다.

 

8. 교착 상태 해결 방법의 종류를 쓰시오

          

- 교착 상태 예방 - 교착 상태를 유발하는 네 가지 조건을 무력화 한다.

           - 상호 배제 예방 : 모든 자원을 공유 자원으로 취급한다. (현실적으로는 어려움)

 

           - 비선점 예방 : 모든 자원을 뺏을 수 있게 취급한다. (아사 현상 발생)

 

           - 점유와 대기 예방 : 자원을 한번에 할당하거나, 할당하지 않는다.


프로세스마다 원하는 자원을 파악하기 어렵고, 일괄 작업 방식으로 동작한다. (아사 발생, 효율 저하)

 

           - 원형 대기 예방 : 점유와 대기를 하는 프로세스들이 원형을 이루지 못하도록한다.                                 -> 자원을 한 방향으로만 사용하도록 설정한다.

                      -> 모든 자원에 숫자를 부여하고 숫자가 큰 방향으로만 자원을 할당한다.

                      -> 숫자가 큰 자원을 받았을 때 더 작은 자원을 요청하지 못한다.

                      -> 작업 진행의 유연성이 떨어지고, 자원에 번호 부여가 어렵다.

          

 

 

 

- 교착 상태 회피 - 교착 상태가 발생하지 않는 수준으로 자원을 할당한다.

- 교착 상태가 발생하지 않는 범위 내에서만 자원을 할당하고 

교착 상태가 발생하는 범위에 프로세스는 대기 시킨다.

           * 은행원 알고리즘 - 최악의 경우를 계산하여, 교착 상태를 피할 만큼의 자원을 할당한다.

    하지만 사용되지 않는 자원이 생기게 된다.

           * 은행원 알고리즘의 변수 : 전체 자원 : 시스템 내 전체 자원 수

                                              가용 자원 : 현재 사용할 수 있는 자원 수

                                              최대 자원 : 각 프로세스가 선언한 최대 자원 수

                                              할당 자원 : 각 프로세스에 할당된 자원 수

                                              기대 자원 : 각 프로세스가 사용할 자원 수

각 프로세스의 기대 자원과 비교해서

가용 자원 > 기대 자원 일때 자원을 할당한다.

가용 자원 <= 기대 자원 일때는 자원 할당을 하지 않는다.

          

교착 상태 회피의 문제점으로 

모든 자원을 미리 선언해야 하는 것, 시스템의 전체 자원 수가 고정적인 것, 자원 낭비로 볼 수 있다.

 

 

 

 

 

 

 

 

 

 

 

- 교착 상태 검출 - 자원 할당 그래프를 사용하여 교착 상태를 발견한다.

           - 타임아웃을 이용한 교착 상태 검출

                      일정 시간 동안 작업이 진행되지 않은 프로세스를 교착 상태로 취급한다.

                      -> 엉뚱한 프로세스가 종료될 수 있다.

                      -> 모든 시스템에 적용할 수 없다.

                      데이터베이스에서는 체크포인트와 롤백을 사용한다.

 

           - 자원 할당 그래프를 이용한 교착 상태 검출

                      단일 자원일 때, 자원 할당 그래프에 사이클이 발생하면 교착 상태이다.

                      다중 자원일 때, 자원 할당 그래프에 사이클이 발생하면 교착 상태 가능성이 있다.

                      -> 프로세스의 작업 방식을 제한하지 않으면서 교착 상태를 파악할 수 있다.

                      -> 사이클 검사에 따른 오버헤드가 발생한다.

 

- 교착 상태 회복 - 교착 상태를 검출 후 해결한다.

           - 교착 상태를 일으킨 모든 프로세스를 동시에 종료한다.

 

           - 교착 상태를 일으킨 프로세스 중 하나를 골라 순서대로 종료한다.

                      - 우선순위가 낮은 프로세스 먼저 종료

                      - 작업 시간이 짧은 프로세스 먼저 종료

                      - 자원을 많이 사용하는 프로세스를 먼저 종료

 

* 자원 할당 그래프에서 

* 점선은 프로세스가 요구하는 자원이고

* 실선은 프로세스가 가지고 있는 자원이다.

 

- 다중 자원 상태에서는 대기 그래프와 그래프 감소(기다리는 자원이 없는 프로세스 화살표 지우기)를 통해 교착 상태를 검사한다.

 

6장 연습문제

 

1. 2개 이상의 프로세스가 서로의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 무엇이라 하는가?

 

2. 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 나타내는 방향성이 있는 그래프를 무엇이라고 하는가?

 

3. 네 가지 교착 상태 필요조건에 대해 설명하시오

 

 

4. 교착 상태 해결 방법 중, 교착 상태를 유발하는 네 가지 조건을 무력화하는 방법은 무엇인가?

 

5. 교착 상태 해결 방법 중, 교착 상태가 발생하지 않는 수준으로 자원을 할당하는 방법은 무엇인가?

 

6. 교착 상태 해결 방법 중, 자원 할당 그래프를 사용하여 교착 상태를 발견하는 방법은 무엇인가?

 

7. 교착 상태 해결 방법 중, 타임아웃을 이용하여 해결하는 방법은 무엇인가?

 

8. 교착 상태 해결 방법 중, 은행원 알고리즘을 사용하여 해결하는 방법은 무엇인가?

 

9. 교착 상태 해결 방법 중, 모든 자원에 번호를 부여하고 낮은 번호의 자원을 사용할 수 없도록 하는 방법은 무엇인가?

 

10. 교착 상태 해결 방법 중, 프로세스가 시작 초기에 자신이 사용하려는 모든 자원을 한꺼번에 점유하거나, 그렇지 못할 경우 자원을 모두 반납하는 방법은 무엇인가?

 

 

11. 교착 상태 해결 방법 중, 교착 상태가 검출되면 교착 상태를 일으킨 모든 프로세스를 종료하는 방법은 무엇인가?

 

12. 자원 할당 그래프에서 무엇이 발견되면 교착 상태라고 판단할 수 있는가?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6장 심화문제

 

1. 교착 상태 해결 방법 중 프로세스가 시작 초기에 자신이 사용하려는 모든 자원을 한꺼번에 점유하거나, 그렇지 못할 경우 자원을 모두 반납하는 방법이 있다. 이 방법의 단점을 설명하시오

 

 

 

 

 

 

 

2. 교착 상태 회피 방법인 은행원 알고리즘의 단점을 설명하시오

 

 

 

 

 

 

3. 교착 상태 검출 시 타임아웃을 이용하는 방법의 장단점을 설명하시오

 

 

 

 

약 100문제가 출제되는 중간고사를 대비해서 만든 문제집 겸 요약본이다

 

공룡책처럼 구체적이고 자세한 내용을 담은 책은아니라서 좀 아쉬운것 같다

 

728x90
복사했습니다!