CS/운영체제

운영체제 5주차 과제

미네구스 2024. 9. 12. 23:31

절대 주소 지정과 상대주소 지정의 차이점은 뭘까요?

절대 지정 주소는 메모리나 파일 시스템에서 특정 위치를 정확히 지정하는 방식이고, 상대 주소 지정은 현재 위치 또는 기준점을 기준으로 한 오프셋을 사용하여 주소를 지정합니다.

메모리 분할에 대해 설명해주세요.

운영체제가 메모리를 효율적으로 관리하기 위해 사용되며, 정적 분할과 동적 분할로 나눌 수 있습니다.
동적 분할은, 프로세스의 요구에 맞춰 분할의 크기를 유동적으로 조정하는 반면 정적 분할은 메모리를 고정된 크기의 분할로 나눕니다.

메모리 배치 기법(메모리 관리 전략)에 대해 설명해주세요.

운영체제가 프로세스를 메모리를 효율적으로 배치하고 관리하기 위해 사용되는 방법을 의미합니다. 이 배치 기법은 시스템 성능에 영향을 줍니다. 크게 연속 할당 기법과 비연속 할당 기법으로 나눌 수 있습니다.

 

연속 할당 기법

  • 하나의 프로세스가 메모리 상에서 연속된 공간에 배치되는 방법으로, 메모리 영역이 물리적으로 연속되어 있습니다.
  • 대표적으로 고정 분할 방식, 가변 분할 방식이 있습니다.

비연속 할당 기법

  • 프로세스가 메모리의 연속되지 않은 여러 영역에 배치되는 방법으로, 물리적으로 연속되지 않은 메모리 블록을 사용하여 메모리의 단편화를 줄이고 효율적인 메모리 사용을 가능하게 합니다.
  • 대표적으로 페이징, 세그멘테이션, 가상 메모리가 있습니다.

외부 단편화와 내부 단편화의 차이가 뭔가요?

우선, 메모리 단편화란 RAM에서 메모리의 공간이 작은 조각으로 나뉘어 사용 가능한 메모리가 충분히 있지만, 할당이 불가능한 상태를 말합니다.

 

내부 단편화란, 프로세스가 필요한 양보다 더 큰 메모리가 할당되어 메모리 공간이 낭비되는 현상입니다.

외부 단편화란, (메모리가 할당 및 해체 작업 후) 사용하지 않은 메모리가 중간중간에 존재하여 총 메모리 공간은 충분하지만 사용할 수 없는 상황을 말합니다. 

 

메모리 배치 기법중 하나인 colaescing(통합)에 대해 설명해주세요.

메모리 관리에서 외부 단편화 문제를 해결하기 위해 사용되는 기법으로 메모리 해제 시 인접한 빈 메모리 블록들을 하나의 큰 과정으로 통합하여 메모리 공간을 효율적으로 관리할 수 있도록 처리합니다.

메모리 배치 기법중 하나인 compaction(압축)에 대해 설명해주세요.

마찬가지로 외부 단편화 문제를 해결하는 기법 중 하나로, 메모리 전체에 흩어져 있는 작은 빈 공간들을 강제로 모아 큰 연속된 빈 공간을 확보하는 기법 입니다. 

메모리 배치 기법중 하나인 버디 시스템에 대해 설명해주세요.

외부 단편화를 줄이기 위한 목적으로, 해당 기법은 메모리를 2의 거듭제곱 크기로 분할하여 메모리의 단편화를 줄이고 복잡도를 낮춥니다.

메모리 배치 기법중 하나인 페이징에 대해 설명해주세요.

프로세스의 메모리 공간을 작은 블록으로 나누어 관리하는 방식입니다.

메모리 배치 기법중 하나인 세그멘테이션에 대해 설명해주세요.

프로세스의 메모리 공간을 논리적 단위로 나누어 관리하는 방법으로 내부 단편화를 감소시킵니다.

가상 메모리에 대해 설명해주세요.

현재 물리적 메모리보다 더 큰 메모리공간을 프로세스에 제공하기 위해 설계된 방식입니다. 프로세스 전체가 메모리에 올라오지 않더라도 실행이 가능하며 사용자 프로그램이 물리적 메모리보다 큰 상황에서도 실행이 가능하도록 만들어줍니다.

가상 주소와 물리 주소(실주소)에 대해 설명해주세요.

가상 주소는 논리적 주소라고도 말하며, 프로세스마다 독립적으로 가지는 주소 공간을 뜻합니다. 

물리주소는 실제 메모리 하드웨어에 올라와 있는 주소를 말합니다.

 

일반적으로, 가상 주소가 물리 주소보다 큽니다.

가상 주소를 물리 주소(실주소)로 어떻게 변환할까요?

가상 메모리에서 프로세스는 가상 주소를 사용하여 메모리에 접근하지만, 실제 물리 주소와 다르기 때문에 매핑 테이블을 통해서 가상 주소와 물리 주소간에 매핑 관계를 유지하고 추적할 수 있습니다. 

Swapping이란 무엇인가요?

물리적 메모리가 부족할 떄, 프로세스의 일부를 디스크와 메모리 간에 이동시켜 메모리 자원을 효율적으로 관리하는 기법입니다. 이는 가상 메모리 시스템에서 중요한 구성 요소로, 메모리의 물리적 제약을 넘어 더 많은 프로세스를 동시에 실행시킬 수 있습니다.

Swapping의 과정을 설명해 주세요.

  1. 페이지 결함 발생: 프로세스가 메모리 접근을 시도할 때, 필요한 페이지가 물리적 메모리에 없으면 페이지 결함이 발생합니다. 이 경우, 운영 체제는 페이지를 디스크에서 메모리로 로드해야 합니다.
  2. 메모리 부족 확인: 페이지를 메모리에 로드하기 위해, 물리적 메모리의 빈 공간이 필요합니다. 만약 물리적 메모리가 부족하다면, 운영 체제는 기존의 페이지 중 하나를 선택하여 디스크로 이동시킵니다. 이 과정을 스와핑이라고 합니다.
  3. 페이지 선택: 스와핑할 페이지를 선택하는 알고리즘이 필요합니다. 일반적으로 페이지 교체 알고리즘 (예: LRU, FIFO 등)을 사용하여 어떤 페이지를 스와핑할지 결정합니다.
  4. 페이지 이동: 선택된 페이지를 디스크의 스와핑 영역(스와핑 파일 또는 스와핑 파티션)으로 이동시킵니다. 이 과정에서 페이지의 현재 상태(데이터)를 디스크에 저장합니다.
  5. 페이지 로드: 디스크에서 필요한 페이지를 메모리로 로드하고, 페이지 테이블을 업데이트하여 새로운 물리적 주소를 반영합니다.
  6. 프로세스 실행: 이제 페이지가 메모리에 로드되었으므로, 프로세스는 다시 해당 페이지를 접근할 수 있습니다. 스와핑된 페이지의 데이터를 다시 메모리에서 사용할 수 있게 됩니다.

Swapping의 장단점을 설명해 주세요.

장점

  1. 메모리 자원의 효율적 사용: 스와핑을 통해 메모리 공간을 유연하게 관리할 수 있으며, 물리적 메모리 용량에 관계없이 더 많은 프로세스를 동시에 실행할 수 있습니다.
  2. 프로세스의 연속성 유지: 프로세스의 상태를 디스크에 저장하고 복원할 수 있으므로, 프로세스는 중단 없이 계속 실행될 수 있습니다. 이는 멀티태스킹 환경에서 유용합니다.
  3. 대용량 프로세스 지원: 물리적 메모리보다 큰 메모리 요구를 가진 프로세스를 실행할 수 있게 해줍니다. 이는 대용량 데이터 처리 또는 복잡한 애플리케이션에서 유용합니다.

단점

  1. 성능 오버헤드: 페이지를 디스크와 메모리 간에 이동시키는 과정에서 디스크 I/O가 발생하므로, 성능이 저하될 수 있습니다. 특히, 스와핑이 자주 발생하면 시스템의 성능에 큰 영향을 미칠 수 있습니다.
  2. 디스크 I/O 비용: 디스크는 메모리에 비해 훨씬 느리기 때문에, 디스크와 메모리 간의 데이터 전송은 시간이 오래 걸립니다. 이로 인해 응답 시간이 느려질 수 있습니다.
  3. 페이지 결함 처리 비용: 페이지 결함이 자주 발생하면, 페이지를 자주 스와핑하고 로드해야 하므로, 전체 시스템의 성능에 부정적인 영향을 미칠 수 있습니다.
  4. 디스크 공간 요구: 스와핑 파일이나 스와핑 파티션을 사용할 때, 디스크 공간이 추가로 필요합니다. 이로 인해 디스크 공간 관리가 필요할 수 있습니다.

페이지 교체에 대해서 설명해주세요.

가상 메모리 시스템에서 물리적 메모리가 부족할 때, 메모리 내의 페이지를 디스크로 이동시키고, 디스크에서 필요한 페이지를 메모리로 로드하는 과정입니다. 페이지 교체는 Swapping의 기법 중 하나로, 프로세스가 요청한 페이지를 메모리에 로드할 수 있게 하는 중요한 메모리 관리 기법입니다.

페이지 부재를 최소화하려면 어떻게 해야 하나요?

페이지 부재는 프로세스가 접근하려는 페이지가 메모리에 없을 때 발생하는 상황으로, 이로 인해서 성능이 저하될 수 있습니다. 이를 위해서 적절한 페이지 교체 알고리즘을 선택해야 합니다.

페이지 교체 알고리즘 FIFO에 대해 설명 해주세요.

메모리에 있는 페이지 중 가장 오래된 페이지를 교체하는 방식으로, 큐를 사용합니다.

페이지 교체 알고리즘 LRU에 대해 설명 해주세요.

가장 오랫동안 사용되지 않은 페이지를 교체하는 방식으로 효율적인 페이지 교체가 가능합니다. 하지만, 사용되지 않은 시점을 기록해야 하기 때문에 추가적인 오버헤드가 발생할 수 있습니다.

페이지 교체 알고리즘 LFU에 대해 설명 해주세요.

가장 적게 사용된 페이지를 교체합니다. 페이지가 사용된 빈도에 따라서 교체 결정을 내려줍니다. 이 또한 효율적으로 관리되나 추가적인 오버헤드가 발생할 수 있습니다. 

페이지 교체 알고리즘 클럭 알고리즘에 대해 설명해주세요.

LRU의 변형된 교체 알고리즘 입니다. 메모리를 원형 큐라고 생각해 각 페이지를 원형 큐의 슬롯에 배치합니다.

 

LRU보다 더 사용되는 이유는 구현이 간단하고, LRU는 페이지의 접근 시점을 관리하기 때문에 추가적인 메모리 오버헤드가 필요한데 클럭 알고리즘은 페이지에 대해 단순한 참조 비트와 원형 큐만 필요하기 때문에 오버헤드가 더 적습니다. 

쓰레싱에 대해 설명해주세요.

시스템의 성능이 심각하게 저하된 상태를 말합니다. 쓰레싱이 발생하면 프로세스가 필요한 페이지를 계속해서 디스크와 메모리 사이에서 교체하기 때문에 성능이 심각하게 저하됩니다.

쓰레싱의 원인으로는 과도한 프로세스 수, 비효율적인 페이지 교체 알고리즘, 메모리 요구가 큰 어플리케이션이 있을 수 있습니다. 

워킹 알고리즘에 대해 설명해주세요.

프로세스의 메모리 관리와 교체 알고리즘을 최적화 하기 위해 사용하는 개념으로, 프로세스의 현재 메모리 요구를 기반으로 페이지를 관리합니다. 이 알고리즘은 쓰레드 문제를 방지하고, 효율적인 메모리 사용을 가능하게끔 해줍니다.

페이지 부재 빈도 알고리즘에 대해 설명해주세요.

페이지 교체 알고리즘의 한 유형으로, 페이지 부재가 발생하는 빈도를 기반으로 페이지를 교체하는 방식이빈다.

대표적으로 LFU, MFU가 있습니다.

LFU (Least Frequently Used)

  • 각 페이지에 대한 사용 빈도를 기록하며, 페이지가 메모리에 접근할 떄 해당 페이지의 사용 빈도를 증가시킵니다.
  • 페이지를 교체할 때, 사용 빈도가 가장 낮은 페이지를 선택하여 교체합니다.

MFU (Most Frequently Used)

  • LFU와 목적은 같으나, 사용 빈도가 가장 높은 페이지를 선택하여 교체합니다.