:논리적 주소란 가상의 주소로 cpu가 생성한 주소를 말한다. 목적 코드가 저장된 공간과 프로그램에서 사용하는 자료구조 등이 이에 해당하며 물리적 주소는 논리적 주소에 대응하여 적재하는 주소로, 메모리 팁이나 디스크 공간에서 생성된다.
프레임 32개로 구성된 실제 물리적 주소 공간으로 매핑되는 1024byte의 페이지 8개인 논리적 주소 공간을 생각해 보자
:
1) 논리적 주소에 몇 개의 비트가 있는가?
1024가 2의 10승이고 8이 2의 승이므로 10+3으로 2의 13승이되니 13비트이다.
2) 물리적 주소에 몇 개의 비트가 있는가?
32가 2의 5승이고 1024가 2의 10승이므로 2의 15승 15비트이다.
다음 할당 알고리즘을 설명하시오
:
1)최초 적합
:프로세스를 사용가능 공간 중 충분히 큰 첫번째 공간에 할당하는 방법으로 사용가능 공간의 리스트 맨 랖이나 이전의 최초 적합 검색이 끝났던 곳에서 시작하면 충분히 큰 사용공간을 찾을수 있다.
2)최적 적합
: 프로세스를 충분히 큰 사용 가능 공간 중에서 들어갈 수 있는 가장 작은 공간에 할 당 한다. 사용 가능 공간을 계속 정렬하는 과정이 필요하므로 시간이 많이 소모되 비효율적일 수 있지만 사용가능 공간의 이용룰은 향상된다.
3)최악 적합
:프로세스를 가장 큰 사용공간에 할당된다. 최적 적합과 같이 공간을 계속 정렬해야하므로 시간이 걸리나 가장 큰 공간에 할당하기 때문에 가장 작은 또 다른 사용 가능 공산을 만들 필요가 없어 메모리 활용면에서 더 유용하다.
4)100KB,500kb,200kb,300kb,600kb 순으로 기억장치가 분할 되었을떄 1~3개의 알고리즘은 프로세스 212kb,417kb,112kb,426kb를 어떤 순서로 할당 하는가? 어느 알고리즘이 기억장치를 가장 적정하게 사용하는가?
:최초적합을 사용한다면 500kb->600kb->500kb그리고 426kb는 다른 프로세스가 작업을 끝낼때 까지 대기한다.
최적 적합은 300kb-> 500kb->200kb->600kb 순으로 사용이 된다.
최악 적합은 600kb->500kb->300kb 그리고 426kb는 다른 프로세스가 작업을 끝낼때까지 대기해야한다.
내부 단편화와 외부 단편화의 차이를 설명하시오
:내부 단편화는 분할된 메모리속에 프로세스가 할당 된후 남는 메모리를 말하며 외부 단편화는 분할된 메모리가 프로세스보다 작아서 할당을 못받는 경우 이를 외부 단편화라 한다.
왼쪽 세그먼트 테이블을 참고하여 오른쪽 1~6의 논리적 주소에서 물리적 주소를 구하시오.
:
1)0,430 :649
2)1,10 :2310
3)1,11:2311
4)2,500 :590
5)3,400 :1727
6)4,112 :2064
세그먼트 하나가 다른프로세스 2개의 주소공간에 속할 수 있는 방법을 설명하시오
:세그먼트 공유를 하면 되는데 공유한다고 선언만 하면 된다. 세그먼트 테이블에 있는 항목을 동일한 메모리 주소를 지정하면 공유가 가능하다.
페이지 테이블을 메모리에 저장한 페이징 시스템이 있다. 다음 질문에 답하시오
:1)메모리 참조가 200나노초 걸렸다면, 페이지로 된 기억장치의 참조는 얼마나 걸리는가?
:메모리 참조가 200나노초 그리고 페이지로 기억창지 참조 시간 200초로 총 400초가 걸린다.
2)연관 레지스터를 추가하여 모든 페이지 테이블 참조의 75%를 연관 레지스터에서 찾는다면, 실제 메모리 접근시간은 얼마나 되는가?(단, 연관 레지스터에서 어떤 페이지 테이블 항목을 찾을때 해당 항목이 그곳에 있는다면 시간은 걸리지 않는다고 가정한다.)
:0.75*200+0.25*400으로 150+100인 250초 걸린다.
페이지 테이블에서 항목 2개가 메모리의 동일한 페이지 프레임을 가리킨다면 그 결과는 어떻게 될까? 많은 양의 메모리를 한 장소에서 다른 장소로 복사할 때 이것을 사용하여 어떻게 필요한 시간의 양을 감소시킬수 있는가? 한 페이지를 다른 페이지로 업데이트했을 때 어떤 효과가 있는가?
: 2개의 항목들이 메오리에서 동일한 페이지로 나타나게 하면 사용자들은 코드와 데이터를 공유 할 수 있다. 많은 양의 메모리를 복사한다면 서로다른 테이블들을 동일한 메모리 할당을 나타내게 하므로 시간의 양을 감소 시킬 수 있다. 한페이지를 다른 페이지로 업데이트 했을땐 그 코드를 사용 할 수 있는 모든 상용자가 그것을 변경 할 수 있고 다른 사용자들이 복사 할 수 있다.
바인딩을 설명 하시오
:하나의 프로세스에 논리적 주소와 물리적 주소를 연결 시켜주는 작업을 의미한다.
중첩(오버레이)의 개념과 단점을 설명하시오
:운영체제 영역과 메모리 일부에는 프로그램에 꼭 필요한 명령어와 데이터만 저장하고 나머지는 필요할때 호출하여 적재하는 방법이다. 무척이나 효율적인 방법이긴 하지만 프로그램의 크기가 거대해져 전체 자료구조를 이해하기 어려워 항상 사용은 못하므로 제한된 하드웨어에서만 사용한다.
동적 적재의 개념과 장점을 설명하시오
:바인딩을 최대한 늦춰 실행 직전에 주소를 확정하여 메모리를 효율적으로 운영하는 방법을 말한다. 사용하지 않을 루틴을 메모리에 적재하지 않으므로 메모리를 효율적으로 사용할 수 있으며 프로그램 전체 양이 많을 떄 유용하다.
재할당 레지스터를 설명하시오
: 수행중인 프로그램을 다른 곳으로 옮기게 해줘 프로그램이 계속 실행되게 해준다. 이렇게 하면 프로그래머는 마치 0번지에서 시작 하는 것처럼 프로그램을 작성 할 수있다.
고정분할 영역을 만드는 방법을 열거하시오
:기준 레지스터와 한계 레지스터를 사용하는 방법과 현재 실행 중인 위.아래 바운드 레지스터를 사용하는 방법이다.
세그먼트를 설명하시오
:가상 기억장치에 있어서 가장 어드레스 구조를 실현하기 위해 운영체제에 의해 어떤 바이트 수 단위로 분할되는 가상 기억 영역을 말한다.
페이지크기가 4kb이고 메모리 크기가 256kb인 메모리 페이징 시스템이 있다고 가정하여 다음 질문에 답하시오
1) 페이지 프레임 수는?
:256의 메모리가 4kb의 크기를 가지니 총 64개이다.
2)이 메모리 주소를 해결하는 데 필요한 비트는?
:4kb는 2의 12승이고 페이지 프레임은 256kb로 2의 6승이다. 따라서 18비트이다.
3)페이지 번호에 사용하는 비트 페이지 오프셋에 사용하는 비트는?
:페이지 번호는 6비트이고 페이지오프셋은 12비트이다.
크기가 212바이트인 동일한 분할(영역)과 232바이트의 메인 메모리를 갖는 고정 분할 방법을 사용하는 시스템이 있다고 가정하자. 프로세스 테이블은 각 상주 프로세스의 분할 포인터를 유지한다. 프로세스 테이블의 포인터에 필요한 비트는?
:프로세스 테이블 포인터는 시스템의 각 분할을 가리킬수 있어야한다. 따라서 메인메모리 크기를 분할 크키로 나누어 필요 비트를 나타낼 수 있다. 즉 2의 20승으로 20비트이다.
페이지 크기가 1KB라고 가정하면, 다음 주소 참조에서 페이지 번호와 어프셋은?
:
페이징 시스템에서 프로세스는 쇼유하지 않는(적재되지 않는) 메모리에 액세스 할 수 없다. 다음 질문에 답하시오
:
1) 프로세스가 소유하지 않는(적재되지 않는)메모리에 엑세스 할 수 없는 이유는?
:페이징 시스템의 주소는 논리적 페이지 번호와 오프셋이다. 이 논리적 페이지는 물리적 페이지를 기반으로 검색하기 때문에 프로세스에 할당된 물리페이지에 엑세스하도록 프로세스를 제한할 수 있다. 따라서 프로세스는 그 페이지가 페이지 테이블에 없기 때문에 페이지를 참조할 수 없다.
2)운영체제가 다른 메모리에 엑세스 할 수 있을까? 그리고 운영체제가 다른 메모리에 엑세스 할 수 있게 해야하는가 , 아니면 하지 않아도 되는가?
:이러한 엑세스를 허용하기 위해, 운영체제는 적제되지 않은 메모리에 대한 항목은 프로세스의 페이지 테이블에 단순하게 추가되도록 할 필요가 있다. 두 개 이상의 프로세스가 다른 논리 주소라도 동일한 물리적 주소로 읽고 작성할 때 유용하다.
페이징 시스템에서 페이지 테이블이 어떤 기능을 하는지 설명하시오
:페이지의 논리적 주소인 페이지 번호와 이에 대응하는 물리적 주소인 페이지 프레임 주소를 포함하며 별도의 레지스터로 구성하거나 메인 메모리에 배치하기도 한다.
컴파일러에서는 함수 호출이나 순환의 시작부분으로 점프하는 코드와 데이터를 참조하는 주소를 생성해야한다. 메모리 시스템에서 이 주소는 물리적인 주소인가, 아니면 논리적 주소인가.
: 논리적 주소이다. 함수 호출과 순환 부분 그리고 데이터를 참조하는 주소를 생성하려면 페이지 테이블을 참조 해야하므로 물리적 주소를 참조되야한다. 따라서 논리적 주소이다.
댓글 없음:
댓글 쓰기