공부방/운영체제

시스템호출과 인터럽트 서술형 풀어보기

EVO. 2023. 5. 23. 21:25

1. 사용자 공간과 커널 공간에 대해

1) 사용자 공간과 커널 공간에는 각각 무엇이 적재되는가?

2) 사용자 공간과 커널 공간을 두는 이유는 무엇인지 최소 3줄 정도로 기술하라.

 

2. 사용자 모드와 커널 모드에 대해

1) 사용자 모드와 커널 모드를 간단히 설명하라.

2) 사용자 모드와 커널 모드로 나눈 이유는?

3) 어떤 경우에 CPU가 사용자 모드에서 커널 모드로 바뀌는가? 경우를 나열하고 설명하라.

 

3. 32비트 Windows 운영체제에서 사용자 영역의 크기를 2GB로 정하였을 때, 응용프로그램 과 라이브러리에 관해 답하라. 1) 여러분이 작성한 응용프로그램의 크기란 어떤 크기를 말하는가? 다른 말로 무엇을 합친 크 기인가?

2) 응용프로그램에서 printf()를 호출한다고 하자. printf() 함수의 코드는 응용프로그램의 크 기에 포함되는가?

3) 응용프로그램의 크기는 최대 얼마까지 가능한가? 답에 대한 이유도 함께 설명하라.

4) 응용프로그램에서 printf()를 호출한다고 하자. printf() 함수의 코드는 사용자 공간에 적재 되는가? 커널 공간에 적재되는가? 그 이유는 무엇인가?

 

4. 특권 명령에 대해,

1) 어떤 유형의 명령인지 한 줄로 말하라

2) 한 개의 명령을 사례로 들어 왜 특권 명령인지 말하라

3) 특권 명령이 커널 모드에서만 사용하도록 한 이유는 무엇인가?

 

5. 최근 10초 동안 CPU가 사용자 모드보다 커널 모드에서 많이 실행되고 있다면 컴퓨터의 실행 상황은 어떠한 경우라고 생각이 드는가?

 

6.  커널이 무엇인가라고 질문 받을 때, 학생의 답을 기술하라.

 

7. 시스템 호출에 관해

1) 시스템 호출을 하기 위해 반드시 시스템 호출을 일으키는 기계 명령이 필요한가?

2) 운영체제의 기능(커널 기능)을 사용하기 위해 시스템 호출 외 다른 방법이 있는가?

3) printf()가 실행되는 동안 시스템 호출이 발생하는가? 아닌가? 간단히 설명하라.

4) 시스템 호출이 일어나는 과정을 나름대로(혹은 사례로) 그림을 그리고 자세히 설명하라.

 

8. 응용프로그램에서 시스템 호출을 많이 사용할수록 좋은가 나쁜가? 아니면 관계없는가? 이 답에 대한 이유를 표준 라이브러리 함수 fread()와 시스템 호출 함수 read()를 사용하는 사례 를 들어 설명하라.

 

9. 컴퓨터의 입출력 장치들은 입출력 완료가 끝났을 때 인터럽트를 통해 CPU에게 이를 알린 다.

1) 인터럽트를 받는 CPU의 핀을 일반적으로 몇 개 있는가?

2) CPU의 인터럽트 핀의 개수는 한정적이므로 여러 입출력 장치들로부터 인터럽트를 수신하 기 위해 취한 방법은 무엇인가?

3) 인터럽트 벡터 테이블이란 무엇인가? 이 테이블은 사용자 영역에 있는가? 커널 영역에 있 는가? 그리고 그 곳에 있어야 하는 이유는 무엇인가?

4) 인터럽트가 처리되는 하드웨어 과정을 그리고 각 단계별로 설명하라.

 

10. 자신의 영문 이름을 스크린에 출력하는 프로그램을 작성하라. 그리고 리눅스에서 편집하고 실행하라. 리눅스는 자신의 컴퓨터에 설치한 것이든, CoCalc 사 이트에서 작업했던 상관없다. 작성한 프로그램 소스와 컴파일하고 실행하는 명령, 그리고 실행 결과를 모두 출력하여 답으로 제출하라

 


예상 답

잘못된게 있으면 알려주시면 정말 감사하겠습니다.