본문 바로가기
교재 공부/OS(운영체제) 문제풀이

명품운영체제_생능 3장 문제풀이

by Dohi._. 2024. 3. 11.
728x90

 

블로그 개인이 푼 풀이라 오류가 있을 수 있습니다

문제는 저작권보호를 위해 번호만 남깁니다

해당 교재로 공부하신분들과 같이 토론하기 위해서 올려봅니다

 

개념체크

1) 프로그램:  컴파일되어 실행가능 한 형태로 저장 장치에 저장된 상태

    프로세스: 메모리에 적제되어 실행 중인 상태

2) 4번  /프로세스를 스케줄링하는 것은 커널의 기능이 맞다.

3) 1번

4) 4번 / PCB에는 PID(프로세스번호),PPID(부모프로세스번호) Process State, 프로세스 컨텍스트, 스케줄링 정보, exit code,프로세스의 오픈 파일 테이블등이 포함되어있다.

5) 1번

 

6) 2번
7) 32비트 CPU의 주소선은 32개이고 엑세스 가능한 메모리의 최대량은 2^32 (4,294,967,296개) EO프로세스의 주소공간 크기또한 2^32Byte = 4GB

8) 1번
9) 코드 데이터 힙 스택
10)   전역변수 - 데이터영역 / 지역변수 - 스택영역 / C++의 new연산자나 C프로그램의 malloc()를 호출하여 할당 받은 메모리 코드 - 힙영역 / 사용자가 작성한 함수 코드 - 코드영역 / 라이브러리에 작성된 함수 코드 - 코드영역 / 라이브러리 함수에 선언된 지역변수들 - 스택영역

 

11) 1번 2번
12)    printf( ) 함수의 코드는 라이브러리에 작성된 함수 코드이기에 코드 영역에 포함된다/

         printf( ) 함수 내에 선언된 지역 변수들은 프로세스의 스택영역에 포함된다 

         printf( ) 함수내에 선언된 지역 변수들은 사용자 공간에 적재된다.

13) 가상 주소 공간을 통해 관리한다. 각 프로세스마다 가상 주소 공간과 물리 메모리의 물리 주소 공간을 연결하는 매핑 테이블을 두고 두 주소 공간을 관리한다.  프로세스가 자신의 프로그램이 0번부터 시작되고 메모리 전체를 혼자 사용한다고 착각하게 만들어 물리 메모리의 크기나 번지에 대한 고민 없이 사용할수 있다.

14)1번

 

15) 2번

16) yield() 시스템 호출을 불러 스스로 실행을 중단하고 다른 프로세스에게 양보할때는  Ready
 sleep(1) 상태 시스템 호출을 불러 초 동안 잠을 잘 때는  Blocked 상태

 exit(-1) 시스템 호출을 불러 종료할 때는  Terminated/Out 상태

 프로세스에게 할당된 타임 슬라이스가 다 되었을 때는 Ready 상태

17) 4번
18) 1번

19) 1번

 

20) 1번
21)1번
22) 2번
23) #1 init프로세스
24) windows에서 #0 프로세스인 system idle process(시스템 유휴프로세스) 혹은 리눅스의  idle 프로세스의 역할은 시스템에 실행시킬 준비 상태의 프로세스가 1개도 없는 상태에 빠지지 않도록 하기 위한 역할이다.

 

25) 고아프로세스 - 부모 프로세스가 먼저 종료한 자식 프로세스를 의미한다
     좀비프로세스 - 종료 할 때 종료코드를 남겨 놓았지만 부모 프로세스가 읽어가지 않고 있을때 종료한 자식프로세스를 의미한다.

     I/O 집중프로세스 - 입출력 작업이 계산 작업보다 월등히 많은 프로세스를 의미한다.

     CPU 집중프로세스 - 계산 작업이 입출력 작업보다 월등히 많은 프로세스를 의미한다.

    백그라운드 프로세스 - 사용자와 대화가 필요하지않고 낮은 우선순위로 실행도는 프로세스를 의미한다.

 

26) 시스템에 무한히 많은 프로세스가 생성되지 못하는 이유는 부모프로세스가 자식 프로세스를 생성한다면 과부하의 요소가 발생될 수 있기 때문에 생성되지 못하게 제한한다

27) 3번

28) 2번


 

728x90

댓글