### 연습문제 ###
1. 소스코드를 한 번에 번역하지 않고 한 행씩 번역하여 실행하는 방식을 무엇이라 하는가?
인터프리터(interpeter)
2. 프로그래머가 C나 자바로 소스코드를 작성하여 컴파일하면 일차적으로 만들어지는 코드는 무엇인가?
목적코드(.obj)
3. 컴파일할 때 코드에 라이브러리를 연결하지 않고 코드를 실행할 때 라이브러리를 가져와 실행하는 방식을 무엇이라 하는가?
동적 라이브러리 로딩(dynamic library loading)
4. 메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가?
재배치 정책
5. 32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가?
2^32개 번지 수 지정 가능(0 ~ 2^32-1). 메모리 워드가 1바이트일 경우에 4GB
6. 절대 주소는 실제 물리 주소로, 메모리 관리자 입장에서 바라본 주소이다. 절대 주소와 관계없이 사용자 입장에서 항상 0번지부터 시작하는 주소는 무엇인가?
상대 주소
7. 상대 주소를 절대 주소로 변환할 때 사용하는 레지스터는 무엇인가?
재배치 레지스터
8. 프로세스의 크기가 물리 메모리보다 클 때 전체 프로세스를 메모리로 가져오는 대신 적당한 크기로 잘라서 가져오는 기법은 무엇인가?
메모리 오버레이
9. 메모리 영역이 부족해서 쫓겨난 프로세스를 보관하는 저장장치의 특별한 공간은 무엇인가?
스왑 영역(swap area)
10. 가변 분할 방식에서 사용하지 못하는 작은 메모리 공간이 발생하는 현상을 무엇이라 하는가?
외부 단편화(external fragmentation)
11. 고정 분할 방식에서 똑같이 나누어진 메모리 공간에 작은 조각이 발생하는 현상을 무엇이라 하는가?
내부 단편화(internal fragmentation)
12. 가변 분할 방식의 메모리 배치 방식 중 프로세스를 배치하기에 적당한 공간 가운데 가장 작은 공간에 배치하는 방식은 무엇인가?
최적 배치(best fit placement)
**13. 가변 분할 방식의 메모리 배치 방식 중 첫 번째로 발견한 빈 공간에 배치하는 방식은 무엇인가?
최초 배치(first fit placement)
14. 가변 분할 방식의 메모리 배치 방식 중 가장 큰 공간에 프로세스를 배치하는 방식은 무엇인가?
최악 배치(worst fir placement)
15. 가변 분할 방식에서 서로 떨어진 여러 개의 빈 공간을 합치는 작업을 무엇이라 하는가?
조각 모음
16. 메모리 분할 방식 중 프로세스의 크기에 맞도록 1/2 크기로 잘라가면서 메모리를 나누어주는 방식은 무엇인가?
버디 시스템(buddy system)
### 심화문제 ###
1. 컴파일러와 인터프리터를 비교하여 설명하시오
컴파일러는 전체 코드를 해석하여 기계어 코드를 만들어둔다.
- 실행 전에 오류를 발견하고 코드를 최적화할 수 있다.
- 비교적 큰 시스템에 사용된다.
인터프리터는 코드를 한 줄씩 실행한다.
- 비교적 작은 시스템에 사용된다.
2. 컴파일 과정에 대해 설명하시오.
컴파일러가 고급 언어로 작성된 소스 코드를 해석하여 목적파일 생성
여러 목적파일을 묶고 라이브러리를 목적 코드에 추가하는 링크를 실행하여 최종 기계어 코드 생성
실행 시에 라이브러리 함수를 불러와 실행하는 동적 라이브러리 로딩을 통하여 코드 실행
3. 메모리 관리자가 수행하는 세 가지 작업에 대해 설명하시오.
가져오기(fetch)
- 프로세스와 데이터를 메모리에 로드
배치
- 프로세스나 데이터를 메모리의 어느 위치에 넣을지 결정
- 가변 분할 방식, 고정 분할 방식이 있다.
재배치
- 필요 없는 프로세스와 데이터를 내보내기
- 재배치를 위한 교체 알고리즘 사용
4. 절대 주소와 상대 주소에 대해 설명하시오.
절대 주소는 메모리 관리자가 바라보는 주소로서 실제 메모리의 물리적 주소를 나타낸다.
상대 주소는 사용자 프로세스가 바라보는 주소로서 항상 0번지부터 시작한다.
- 상대 주소를 절대 주소로 변환하기 위해 재배치 레지스터를 사용한다.
- 프로세스와 데이터를 가져올 때 재배치 레지스터의 값을 더해 실제 물리적 주소를 계산한다.
5. 가변 분할 방식의 장단점을 설명하시오.
장점
- 프로세스 크기에 맞게 메모리를 할당하기 때문에 낭비가 없어 메모리 사용이 효율적이다.
- 연속적인 공간에 프로세스가 할당되기 때문에 관리 효율성이 증가한다.
단점
- 메모리 관리가 복잡하다.
- 재배치에 대한 추가 비용이 소요된다.
- 외부 단편화가 발생하여 이를 처리하는데 추가적인 비용이 소요된다.
6. 고정 분할 방식의 장단점을 설명하시오.
장점
- 메모리 관리가 쉽다.
단점
- 연속적이지 않은 공간에 프로세스가 배치되면 메모리 관리 효율성이 감소한다.
- 내부 단편화로 인한 메모리 낭비가 발생한다.
7. 버디 시스템에 대해 설명하시오.
메모리를 할당할 때 1/2로 계속 나누다가 적절한 구역에 프로세스를 배치한다.
- 구역 내에 빈 공간이 있어도 다른 프로세스가 이를 차지할 수 없다.
가변 분할 방식처럼 유동적인 크기의 메모리 할당이 가능하며 고정 분할 방식처럼 구역이 생기고 내부 단편화가 발생한다.
비슷한 크기의 조각들이 인접한 위치에 생기기 때문에 이를 합치기가 수월하다.
- 조각 모음을 하지 않아도 큰 덩어리를 만들 수 있다.
관리 효율 측면에서는 고정 분할 방식이 더 단순하여 고정 분할 방식이 많이 사용된다.
'CS > 운영체제' 카테고리의 다른 글
(운영체제) 9 - 가상 메모리 관리 연습문제 (0) | 2020.05.15 |
---|---|
(운영체제) 8 - 가상 메모리의 기초 연습문제 (0) | 2020.05.15 |
(운영체제) 6 - 교착 상태(데드락) 연습문제 (0) | 2020.05.15 |
(운영체제) 5 - 프로세스 동기화 연습문제 (0) | 2020.05.15 |
(운영체제) 4 - CPU 스케줄링 연습문제 (0) | 2020.05.15 |