본문 바로가기
책/쉽게 배우는 운영체제

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

by Just Do Barro 2020. 5. 12.

[쉽게 배우는 운영체제 연습문제 심화문제 정답] 7장 (직접 풀었습니다.)

쉽게 배우는 운영체제 출처:구글

 

[연습 문제]
 
1. 소스코드를 한번에 번역하지 않고 한 행씩 번역하여 실행하는 방식을 무엇이라 하는가?
인터프리터 방식
2. 프로그래머가 C나 자바로 소스코드를 작성하여 컴파일하면 일차적으로 만들어지는 코드는 무엇인가?
목적코드
3. 컴파일할 떄 코드에 라이브러리를 연결하지 않고 코드를 실행할 떄 라이브러리를 가져와 실행하는 방식을 무엇이라 하는가?
동적 라이브러리 (DLL)
4. 메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가?
재배치 정책
5. 32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가?
4GB
6. 절대 주소는 실제 물리 주소로, 메모리 관리자 입장에서 바라본 주소이다. 절대 주소와 관계없이 사용자 입장에서 항상 0번지부터 시작하는 주소는 무엇인가?
상대주소
7. 상대 주소를 절대 주소로 변환할 때 사용하는 레지스터는 무엇인가?
재배치 레지스터
8. 프로세스의 크기가 물리 메모리보다 클 때 전체 프로세스를 메모리로 가져오는 대신 적당한 크기로 잘라서 가져오는 기법은 무엇인가?
메모리 오버레이
9. 메모리 영역이 부족해서 쫓겨난 프로세스를 보관하는 저장장치의 특별한 공간은 무엇인가?
스왑 영역
10. 가변 분할 방식에서 사용하지 못하는 작은 메모리 공간이 발생하는 현상을 무엇이라 하는가?
외부 단편화
11. 고정 분할 방식에서 똑같이 나누어진 메모리 공간에 작은 조각이 발생하는 현상을 무엇이라 하는가?
내부 단편화
12. 가변 분할 방식의 메모리 배치 방식 중 프로세스를 배치하기에 적당한 공간 가운데 가장 작은 공간에 배치하는 방식은 무엇인가?
최적 배치
13. 가변 분할 방식의 메모리 배치 방식 중 프로세스를 배치하기에 적당한 공간 가운데 가장 작은 공간에 배치하는 방식은 무엇인가?
최초 배치

14. 가변 분할 방식의 메모리 배치 방식 중 가장 큰 공간에 프로세스를 배치하는 방식은 무엇인가?

최악 배치

15. 가변 분할 방식에서 서로 떨어진 여러 개의 빈 공간을 합치는 작업을 무엇이라 하는가?

조각 모음

16. 메모리 분할 방식 중 프로세스의 크기에 맞도록 1/2 크기로 잘라가면서 메모리를 나누어주는 방식은 무엇인가?

버디 시스템 방식

 

 

[심화 문제]

1. 컴파일러와 인터프리터를 비교하여 설명하시오.

 컴파일러는 실행 전에 소스코드를 점검하여 오류를 수정하고 필요 없는 부분을 정리하여 최적화된 실행 파일을 만든다. 변수는 미리 선언해야한다. 인터프리터는 한 줄씩 위에서 아래로 실행되기 때문에 같은 일을 반복하는 경우나 필요 없는 변수를 확인할 수 없다. 복잡한 프로그램에는 컴파일러는 사용하고 간단한 프로그램에는 인터프리터를 사용한다.

 

2. 컴파일 과정에 대해 설명하시오.

① 소스코드 작성 및 컴파일

사용자가 고급언어인 자바, C언어로 작성한 소스코드를 컴파일하면 목적코드가 된다.

② 목적 코드와 라이브러리 연결

 목적코드가 만들어지면 라이브러리에 있는 코드를 목적 코드에 삽입하여 최종 실행 파일을 만든다.

③ 동적 라이브러리를 포함하여 최종 실행

 동적 라이브러리 방식은 함수가 변경되어도 새로 컴파일할 필요가 없기 때문에 함수가 변경되었을 때는 새로운 라이브러리만 사용하여 실행하면 된다. 

 

3. 메모리 관리자가 수행하는 세 가지 작업에 대해 설명하시오.

 메모리 관리자는 메모리를 관리하는 역할을 한다. 정확한 명칭은 메모리 관리 유닛(Memory Manage Unit, MMU)라는 하드웨어이다.

첫째, 가져오기 작업(Fetch)은 프로세스와 데이터를 메모리에 가져오는 작업이다. 사용자가 요청하면 프로세스와 데이터를 모두 메모리로 가져오는데, 가져오는 프로세스나 데이터가 메모리 용량보다 클 경우 필요할 때 마다 수시로 가져와 사용할 수 있다. 또한 사용자의 요청이 없더라도 앞으로 필요할 것이라고 예상되는 데이터를 미리 가져오기도 한다.

둘째, 배치 작업(Placement)은 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올려놓을지 결정하는 작업인다. 메모리 관리의 복잡성이 달라지기 때문에 배치 작업전에 메모리를 어떤 크기로 자를 것인지가 매우 중요하다.

셋째, 재배치 작업은 꽉 차 있는 메모리에 새로운 프로세스를 가져오기 위해 오래된 프로세스를 내보내는 작업이다. 

 

4. 절대 주소와 상대 주소에 대해 설명하시오.

 절대 주소는 실제 물리적 주소(Physical Address)를 가르키는 주소이다. 메모리 주소 레지스터가 사용하는 주소로, 컴퓨터에 꽂힌 램 메모리의 실제 주소를 말한다. 절대 주소 사용시 매번 운영체제 영역을 확인해야 한다. 상대 주소(Relative Address)는 사용자 영역이 시작되는 번지를 0번지로 변경하여 사용하는 주소 지정 방식이다. 사용자 프로세스 입장에서 바라본 주소이며, 절대 주소와 관계없이 항상 0번지부터 시작한다. 프로세스 입장에서 상대 주소가 사용할 수 없는 영역의 위치를 알 필요가 없고, 주소가 항상 0부터 시작하기 때문에 편리하다.

 

5. 가변 분할 방식의 장단점을 설명하시오.

 장점은 프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치 할 수 있다.

단점은 메모리 관리가 복잡하다. 프로세스가 끝나는 시간도 동일하지 않은 경우가 많기 때문에 메모리에 빈 공간이 생겨도 그 공간을 쓸 수 없다. 

 

6. 고정 분할 방식의 장단점을 설명하시오.

 장점은 메모리를 일정한 크기로 나누어 관리하기 때문에 메모리 관리가 수월하다. 메모리 통합같은 부가적인 작업을 할 필요가 없다.

단점은 쓸모없는 공간으로 인해 메모리 낭비가 발생할 수 있다. 일정하게 나누어진 공간보다 작은 프로세스가 올라올 경우 메모리 낭비가 발생한다.

 

7. 버디 시스템에 대해 설명하시오.

 버디 시스템 방식은 가변 분할 방식과 고정 분할 방식의 중간 구조이다. 작동 방식은 첫째, 프로세스의 크기에 맞게 메모리를 1/2로 자르고 프로세스를 메모리에 배치한다. 둘째, 나뉜 메모리의 각 구역에는 프로세스가 1개만 들어간다. 셋째, 프로세스가 종료되면 주변의 빈 조각과 합쳐서 하나의 큰 덩어리를 만든다.

 특징은 가변 분할 방식처럼 메모리가 프로세스 크기대로 나뉘며, 고정분할 방식처럼 하나의 구역에 다른 프로세스가 들어갈 수 없고, 메모리의 한 구역 내부에 조각이 생겨 내부 단편화가 발생한다.

댓글