티스토리 뷰

일반 학생이 푼 문제로 정답이 아닐 수 있습니다.(명품 운영체제 수정판)

개념체크

  1. 다음 글에서 프로세스와 프로그램 중에서 선택하라.
    프로그램은(는) 컴파일되어 실행 가능한 형태로 저장 장치에 저장된 상태일 때 부르는 용어이며, 프로세스은(는) 메모리에 적재되어 실행 중인 상태일 때 부르는 용어이다.
  1. 프로세스의 특징을 설명한 것 중 맞는 것은?
    ④ 프로세스를 스케줄링 하는 것은 커널의 기능이다.
    해석:
    ① pid는 같은 번호를 가질 수 없다.
    ② 프로세스간 데이터 공간은 공유되지 않는다.
    ③ 프로세스 실행 및 대기, 종료와 관련된 사항은 모두 운영체제가 관리한다.
  1. 프로세스에 대한 설명으로 틀린 것은
    ① 동일한 프로그램이 실행되어 생성된 프로세스는 항상 동일한 프로세스 번호를 할당받는다.
    해석: 동일한 프로그램이 실행되어 생성된 프로세스라도 생성될 때마다 달라진다.
  1. PCB에 들어 있는 정보가 아닌 것은?
    ④ 프로세스 이름
    해석: p.142
  1. 프로세스의 종료코드는 어디에 저장되는가?
    ① 프로세스의 PCB
    해석: p.142 or p.172
  1. 프로세스가 종료될 때, 커널이 프로세스 테이블 항목이나 PCB를 즉각 삭제하지 않는 이유는 무엇인가?
    ② 프로세스 종료코드를 부모 프로세스가 읽어갈 때까지 기다리기 위해
    해석: p.172
  1. 32비트 CPU에 대해 다음에 답하여라.
    (1) CPU의 주소선 개수는? 32
    (2) CPU가 액세스 가능한 메모리의 최대량은? 2^32bit = 4GB
    (3) 이 CPU를 사용할 때 프로세스의 주소 공간 크기는? 4GB
    해석: p.134
  1. 프로세스의 주소 공간에 대한 설명으로 맞는 것은?
    ① 프로세스가 실행되는 동안 접근할 수 잇는 메모리의 최대 범위이다.
    해석:
    ② 프로세스의 주소 공간은 가상공간이다. 매핑 테이블에 의해 물리 메모리가 지정된다.
    ③ 프로세스의 주소 공간은 커널 영역을 포함한다. 프로세스가 시스템 호출을 통해 커널 함수를 실행하기 때문이다.
    ④ 프로세스에서 발생한 주소 100번지는 매핑 테이블을 통해 비어있는 물리 메모리 주소가 매핑된다.
  1. 프로세스가 메모리에 적재될 때 프로세스를 구성하는 4개의 영역은 무엇인가?
    코드 영역, 데이터 영역, 힙 영역, 스택 영역
    해석: p.134
  1. 운영체제는 프로세스를 코드, 데이터, 힙, 스택의 4 영역으로 구성한다. 다음은 어느 영역에 형성되는가?
    (1) 전역 변수 -> 데이터 영역
    (2) 지역 변수 -> 스택 영역
    (3) C++에서 new 연산자나 C 프로그램에서 malloc() 함수를 호출하여 할당받은 메모리 -> 힙 영역
    (4) 사용자가 작성한 함수 코드 -> 코드 영역
    (5) 라이브러리에 작성된 함수 코드 -> 코드 영역
    (6) 라이브러리 함수에 선언된 지역 변수들 -> 스택 영역
  1. 프로세스가 적재된 이후 실행 과정 동안 크기가 변하지 않는 영역을 있는 대로 골라라
    ①,② 코드 영역, 데이터 영역
    해석: p.134
  1. printf()는 C 프로그램에서 화면 출력을 위해 사용되는 C 표준 라이브러리 함수이다. 다음 질문에 답하라.
    (1) 예
    (2) ④ 스택
    (3) 사용자 공간에 적재된다.
    해석: p.140
  1. 프로세스의 주소 공간은 0번지부터 시작되어 연속적인 번지로 이루어진다. 만일 3개의 프로세스가 메모리에 적재된 채 동시에 실행된다고 하며느 모든 프로세스가 0번지에서 시작하므로, 프로세스들 사이에 번지 충돌이 발생하고 메모리 충돌이 발생할 것 같다. 운영체제는 어떻게 이 문제를 해결하는가?
    매핑 테이블을 이용하여 가상 주소 공간과 물리주소 공간을 연결한다. 운영체제는 서로 다른 프로세스가 동일한 번지를 엑세스하더라도 매핑 테이블에 의해 서로 다른 물리 메모리를 접근하도록 한다.
    해석: p.138
  2. 프로세스 스케줄링에는 어떤 상태의 프로세스들이 대상이 되는가?
    ① Ready 상태
    해석: 스케줄링 대상은 레디 큐에 들어있는 프로세스에서 선택된다.
  1. 커널은 현재 실행 중인 프로세스가 입출력을 요청하면 어떤 상태로 전이시키는가?
    ② Blocked 상태
    해석: p.146
  1. 프로세스는 실행 중 다음 각 경우에 어떤 상태로 바뀌는가?
    (1) yield() 시스템 호출을 불러 스스로 실행을 중단하고 다른 프로세스에게 양보할 때 -> Ready 상태
    (2) sleep(1) 시스템 호출을 불러 1초 동안 잠을 잘 때 -> blocked 상태
    (3) exit(-1) 시스템 호출을 불러 종료할 때 -> Teminated-Zombie 상태
    (4) 프로세스에게 할당된 타임 슬라이스가 다 되었을 때 -> ready 상태
  1. PCB 내에 프로세스가 열어 놓은 파일에 관한 정보가 저장되는 것으로 미루어 다음 중 틀리게 설명한 것은?
    ④ 한 프로세스가 열어 놓은 파일을 다른 프로세스가 입출력할 수 있다.
    해석: 프로세스마다 오픈 파일 테이블을 별도로 관리하기 때문이다.
  1. 다음 중 자식 프로세스를 생성하는데 사용되는 시스템 호출은?
    ① fork()
    해석: p.163
  1. wait() 시스템 호출에 대해 잘 설명한 것은?
    ① 자식 프로세스가 종료할 때까지 대기한다.
    해석:
    ② 자식 프로세스가 종료할 때까지 대기한다.
    ③ 관련없음
    ④ 자식 프로세스가 종료할 때까지 대기한다.
  1. 부모 프로세스가 wait() 시스템 호출을 부르기 전, 자식 프로세스가 먼저 종료할 때 상황에 맞게 설명된 것은?
    ① 커널은 자식 프로세스를 좀비 프로세스로 만든다.
    해석:
    ② 커널은 자식 프로세스를 좀비 프로세스로 만든다.
    ③ 커널은 자식 프로세스를 종료시키고 부모 프로세스가 wait()를 호출할 때까지 대기시킨다.
    ④ 관련없음.
  2. 좀비 상태의 프로세스에 대한 설명 중 틀린 것은?
    ① 좀비 프로세스는 시스템의 성능을 심각하게 떨어뜨린다.
    해석: 좀비 프로세스는 시스템의 성능을 떨어트리지 않는다. 단 과한 좀비 프로세스는 프로세스 테이블의 공간을 부족하게 한다.
    ② 좀비 프로세스는 코드, 데이터, 힙, 스택 등 할당받은 메모리와 모든 자원이 모두 반환된 상태이다. (PCB는 커널이 가진 데이터이지 자식 프로세스가 가진 자원은 아니다.)
  3. 유닉스 계열의 운영체제에서 #1 프로세스를 무엇이라고 부르는가?
    ② init 프로세스
    해석:
    ① 유닉스 #0 부팅과 메모리 창출 프로세스
    ③ 리눅스 #0 유휴 프로세스
    ④ 관련없다.
  4. 유닉스 계열의 운영체제에서 모든 사용자 프로세스의 조상은 누구인가?
    swapper 프로세스
    해석: p.155
  1. Windows에서 #0 프로세스인 시스템 유휴 프로세스(system idle process)나 리눅스의 #0 idle 프로세스의 역할은 무엇인가?
    모든 프로세스의 진행이 끝났을 때 CPU에게 쓰레기 연산을 진행시키는 프로세스
    해석: p.155
  1. 다음은 어떤 프로세스를 설명하는지 적어라.
    (1) 부모 프로세스가 먼저 종료한 자식 프로세스 -> 고아 프로세스
    (2) 종료할 때 종료코드를 남겨 놓았지만 부모 프로세스가 읽어가지 않고 있을 때, 종료한 자식 프로세스 -> 좀비 프로세스
    (3) 입출력 작업이 계산 작업보다 월등히 많은 프로세스 -> I/O 집중 프로세스
    (4) 계산 작업이 입출력 작업보다 월등히 많은 프로세스 -> CPU 집중 프로세스
    (5) 사용자와 대화가 필요하지 않고 낮은 우선순위로 실행되는 프로세스 -> 백그라운드 프로세스
  1. 시스템에 무한히 많은 프로세스가 생성되지 못하는 이유가 구체적으로 무엇일까?
    프로세스 테이블에 번호가 한정되어있기 때문이다.
    해석: p.178
  2. main()에서 3을 리턴하는 three라는 C 프로그램을 작성하였다. 쉘에서 다음과 같이 실행시키면, main()에서 리턴한 값 3은 누구에게 전달되는가?
    ③ 쉘
    해석: p.176
  1. 종료코드의 목적은 무엇인가?
    ② 프로세스가 어떤 상태로 종료함을 부모 프로세스에게 전달하기 위해
    해석: p.172
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함