TIL::Today I Learn

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 6주차

madylin 2024. 8. 18. 23:14
반응형

 

스와핑(Swapping)

스와핑은 메모리 관리 기법 중 하나로, 사용되지 않는 프로세스를 메모리에서 보조 기억 장치로 이동시키고, 실행할 프로세스를 메모리로 가져오는 방식이다. 이를 통해 메모리의 효율적인 사용을 가능하게 하며, 프로세스 간의 자원 경쟁을 완화할 수 있다.

메모리 할당 방식

  • 최초 적합 방식(First Fit Method): 최초 적합 방식은 메모리에서 첫 번째로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방법이다. 이 방식은 탐색 시간을 줄일 수 있으나, 공간 활용이 비효율적일 수 있다.
  • 최적 적합 방식(Best Fit Method): 최적 적합 방식은 프로세스가 적재될 수 있는 가장 작은 빈 공간에 프로세스를 배치하는 방법이다. 이 방식은 메모리 공간을 효율적으로 사용할 수 있지만, 작은 빈 공간들이 많이 남아 외부 단편화를 초래할 수 있다.
  • 최악 적합 방식(Worst Fit Method): 최악 적합 방식은 프로세스가 적재될 수 있는 가장 큰 빈 공간에 프로세스를 배치하는 방법이다. 이 방식은 큰 빈 공간이 빠르게 소모되기 때문에, 큰 프로세스를 위한 공간이 부족해질 위험이 있다.

외부 단편화(External Fragmentation)

외부 단편화는 메모리 내에 존재하는 작고 불규칙한 빈 공간들로 인해 새로운 프로세스를 할당하기 어렵게 되어 메모리가 낭비되는 현상을 의미한다. 외부 단편화 문제를 해결하기 위해 압축(Compaction)이나 메모리 재배치 같은 기법이 사용될 수 있다.

페이징(Paging)

페이징은 물리적 메모리를 일정 크기의 프레임으로 나누고, 프로세스의 논리적 주소 공간을 동일한 크기의 페이지로 나눈 뒤 각 페이지를 물리적 메모리의 프레임에 할당하는 가상 메모리 관리 기법이다. 이를 통해 메모리의 효율적인 사용과 외부 단편화를 줄일 수 있다.

페이지 테이블(Page Table)

페이지 테이블은 각 프로세스의 페이지가 물리적 메모리의 어느 프레임에 적재되었는지를 기록하는 구조체이다. 페이지 테이블에는 페이지 번호와 프레임 번호 외에도 유효 비트(Valid Bit), 보호 비트(Protection Bit), 접근 비트(Access Bit), 수정 비트(Dirty Bit) 등이 포함된다. 페이지 테이블 기반 레지스터(PTBR)는 프로세스의 페이지 테이블이 메모리에 위치한 주소를 가리킨다.

TLB(Translation Lookaside Buffer)

TLB는 페이지 테이블의 캐시 역할을 하며, 자주 사용되는 페이지 테이블 항목을 저장하여 메모리 접근 속도를 향상시킨다. TLB를 사용하면 페이지 테이블 접근이 줄어들어 전체 시스템 성능을 개선할 수 있다.

요구 페이징(Demand Paging)

요구 페이징은 페이지가 필요할 때만 메모리에 적재하는 기법으로, 필요한 페이지만 로드하여 메모리 사용을 최적화한다. 이 방식은 페이지 부재(Page Fault)를 최소화하려는 목적에서 사용되며, 메모리의 효율성을 높일 수 있다.

페이지 교체 알고리즘(Page Replacement Algorithms)

페이지 교체 알고리즘은 메모리에서 불필요한 페이지를 교체하는 방법을 정의한다. 대표적인 알고리즘으로는 FIFO(First-In, First-Out), 최적 교체(Optimal), LRU(Least Recently Used) 등이 있다. 이 알고리즘들은 시스템의 성능과 메모리 활용도를 좌우하는 중요한 요소이다.

스래싱(Thrashing)

스래싱은 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 급격히 떨어지는 현상을 의미한다. 스래싱이 발생하면 시스템 성능이 심각하게 저하될 수 있으며, 이를 방지하기 위해 워킹 셋(Working Set) 모델이나 페이지 폴트율(Page Fault Rate) 기반 프레임 할당 방식이 사용된다.

프레임 할당 방식(Frame Allocation Methods)

프레임 할당 방식에는 균등 할당(Equal Allocation)과 비례 할당(Proportional Allocation)이 있으며, 워킹 셋 모델이나 페이지 폴트율을 기반으로 하는 방식도 있다. 이러한 방식들은 프로세스 간의 메모리 자원을 어떻게 분배할지를 결정하여, 시스템의 효율성을 높인다.

파일(File)

파일은 의미 있고 관련 있는 정보를 모아 하나의 논리적 단위로 구성된 데이터 집합이다. 운영체제는 파일의 확장자를 통해 파일의 유형을 식별할 수 있으며, 파일과 관련된 다양한 부가 정보들이 파일 속성으로 저장된다.

디렉터리(Directory)

디렉터리는 여러 개의 파일 또는 디렉터리를 그룹으로 묶어 관리하는 구조로, 파일 시스템에서 중요한 역할을 한다. 경로(Path)는 디렉터리를 이용해 파일이나 디렉터리의 위치를 특정 짓는 정보를 제공하며, 루트 디렉터리부터 시작하는 절대 경로와 현재 디렉터리부터 시작하는 상대 경로로 나뉜다.

파티셔닝(Partitioning)

파티셔닝은 하드 디스크나 SSD와 같은 대용량 저장 장치를 여러 개의 논리적 단위로 나누는 작업을 의미한다. 이를 통해 하나의 물리적 디스크를 마치 여러 개의 디스크처럼 사용할 수 있으며, 데이터를 더욱 효율적으로 관리할 수 있다.

포매팅(Formatting)

포매팅은 저장 장치에 파일 시스템을 설정하여 데이터를 저장하고 관리할 수 있도록 준비하는 작업이다. 포매팅 과정에서는 파일 시스템의 유형과 구조를 결정하고, 새로운 데이터를 기록할 수 있는 환경을 조성한다.

파일 할당 방식(File Allocation Methods)

  • 연속 할당(Contiguous Allocation): 연속 할당은 보조 기억 장치 내 연속적인 블록에 파일을 할당하는 방식으로, 파일의 저장 위치가 물리적으로 연속된 블록에 존재한다. 이 방식은 파일 접근 속도가 빠르지만, 외부 단편화 문제가 발생할 수 있다.
  • 연결 할당(Linked Allocation): 연결 할당은 파일의 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결 리스트 형태로 관리하는 방식이다. 이 방식은 외부 단편화를 피할 수 있지만, 임의 접근 시 성능이 저하될 수 있다.
  • 색인 할당(Indexed Allocation): 색인 할당은 파일의 모든 블록 주소를 하나의 색인 블록에 모아 관리하는 방식으로, 파일의 임의 접근 성능을 향상시킬 수 있다. 그러나 색인 블록이 커지면, 색인 블록 관리 자체가 복잡해질 수 있다.

파일 시스템(File Systems)

  • FAT 파일 시스템(FAT File System): FAT 파일 시스템은 파일 할당 테이블(FAT)을 이용하여 파일의 블록들을 연결하는 연결 할당 기반의 파일 시스템이다. FAT는 간단한 구조로 인해 널리 사용되었으나, 대용량 디스크에서 성능이 저하될 수 있다.
  • 유닉스 파일 시스템(Unix File System): 유닉스 파일 시스템은 i-node라는 구조체를 이용하여 파일의 메타데이터와 블록 정보를 관리하는 색인 할당 기반의 파일 시스템이다. i-node를 통해 파일에 대한 효율적인 접근과 관리를 할 수 있으며, 유닉스 계열 운영체제에서 널리 사용된다.

 

기본 숙제

1. p. 400의 확인 문제 1번

메모리 할당 방식에 대한 설명으로 올바른 것을 다음 보기에서 찾아 써 보세요.

최초 적합, 최적 적합, 최악 적합
  • ( 최초 적합 ) : 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식
  • ( 최악 적합 ) : 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식
  • ( 최적 적합 ) : 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식

 

스터디를 마치며,

어느새 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 공부하기 위한 스터디인 혼공학습단 12기 스터디가 모두 마무리 되었습니다!

혼자 읽었다면 훨씬 더 더디게 읽게 되었을 것 같고, 정리하지 않아 기억이 휘발되었을 것 같은데,

혼공학습단 덕분에 이렇게 완주할 수 있었습니다.

좋은 경험이였어서, 다음에 다른 책으로도 참여해보고 싶네요!

 

반응형