본문 바로가기

분류 전체보기377

[OS] 파일과 파일 시스템 (파일 접근 방식, 파일 할당 방식, 운영체제 별 파일 시스템, 디스크 파편화 관리) 목차 파일이란? 파일 시스템이란? 디렉터리란? 파티션이란? 파일 접근 방식 순차 접근 (Sequential Access) 직접 접근 (Random Access) 색인 접근 (Index Access) 파일 할당 방식 연속 할당 (Contigious Allocation) 연결리스트 할당 (LinkedList Allocation) 인덱스 할당 (Indexed Allocation) 운영체제 별 파일 시스템 윈도우 : FAT, NTFS 리눅스 : EXT2, EXT3, EXT4 디스크 파편화 관리 1. 파일이란? 파일은 사용자 관점에서 데이터에 대한 논리적 저장 단위로, 관련된 정보들을 저장하기 위해 데이터 집합에 이름을 붙인 것이다. 블록이나 레코드 단위로 HDD 혹은 SSD와 같은 비휘발성 보조기억장치에 저장된.. 2024. 2. 5.
[OS] 가상 메모리란? (Demand Paging, Page Fault, 페이지 교체 알고리즘, 스레싱 문제와 해결 방법) 목차 가상 메모리란? 가상 메모리 구현 방법 : Demand Paging 페이지 교체 알고리즘 FIFO 알고리즘 Optimal 알고리즘 LRU 알고리즘 LFU 알고리즘 Second-Change 알고리즘 (= Clock 알고리즘) 스레싱이란? 스레싱 해결 방법 1. 가상 메모리란? 가상 메모리는 메모리보다 크기가 큰 프로세스를 실행시킬 수 있기 위해 나온 기술이다. 프로세스를 실행할 때 실행에 필요한 코드나 데이터만 메모리에 로드하고, 나머지는 디스크에 저장해 두어 작업한다. 이로써 프로그램 전체가 메모리에 로드되어 수행하는 것처럼 만들고, 메모리가 훨씬 더 큰 용량을 가진 것처럼 보이게 한다. 2. Demand Paging 가상 메모리 구현 방법 중 하나인 Demand Paging은 실행에 필요한 페이지.. 2024. 2. 2.
[OS] 메모리 할당 방식이란? (연속적/비연속적 할당 방식, 조각 모음, 페이징과 세그먼트, TLB, 물리적 주소 변환 과정) 목차 메모리 할당 방식이란? 연속적 할당 방식 고정 분할 방식 가변 분할 방식 조각 모음, 외부 단편화 해결 방법 비연속적 할당 방식 페이징 세그먼트 페이징 + 세그먼트 : Paged Segment TLB (Translation Look-aside Buffer) 물리적 주소 변환 과정 연속적 할당 방식과 비연속적 할당 방식 비교 가변 분할 방식과 고정 분할 방식 비교 페이징과 세그먼트 비교 1. 메모리 할당 방식이란? 메모리는 물리적 주소, 논리적 주소를 갖고 있다. 프로세스가 메모리에 올라간 실제 주소를 물리적 주소, 프로세스 내에서 사용되는 주소를 논리적 주소라고 칭하는데, 프로세스가 동작하면서 필요한 데이터 및 코드의 주소에 접근하기 위해서 논리적 주소를 물리적 주소로 변환하는 작업이 필요하다. 주.. 2024. 2. 2.
[OS] 메모리란? (메모리 주소 종류, 주소 바인딩, MMU의 기능과 역할, 메모리 할당 방식) 목차 메모리란? 메모리 주소 종류 물리적 주소 논리적 주소 논리적 주소를 사용하는 이유 메모리 주소 바인딩 컴파일 시점 주소 바인딩 로드 시점 주소 바인딩 런타임 시점 주소 바인딩 MMU의 기능과 역할 (+ MMU가 잘못된 메모리 주소를 참조하려고 한다면?) 메모리 할당 방식 연속적 할당 비연속적 할당 1. 메모리란? CPU에 의해 작업이 처리되기 위해서는 프로그램이 CPU가 접근할 수 있는 위치에 존재해야 한다. 프로그램을 실행하기 위해서는 디스크에 저장되어 있던 프로그램을 메모리에 적재해야 한다는 말을 들어본 적이 있을 것이다. 이것은 쉽게 설명해 공부를 할 때 책상에서 책을 펼칠 수 있는 공간으로 비유할 수 있으며, 책상의 공간이 한정되어 있기 때문에 나중에 공부할 책은 책장에 꽂아두는 상태로 비유.. 2024. 2. 2.
[운영체제/OS] 데드락과 기아 상태 면접 질문 및 답변 정리 데드락에 대해 설명해 주세요. 더보기 데드락은 이미 자원을 할당 중인 여러 프로세스가 다른 프로세스가 점유 중인 자원을 필요로 해 서로의 작업이 끝나기를 기다리는 상태입니다. 데드락은 상호배제, 점유대기, 비선점, 순화대기라는 네 가지 조건을 모두 만족해야 발생합니다. 데드락의 발생 조건을 알고 계신가요? 더보기 네. 첫 번째로 상호배제, 상호배제는 하나의 프로세스만 공유 자원을 이용할 수 있도록 하는 것입니다. 두 번째로 점유대기, 점유 대기는 이미 다른 자원을 점유하고 있는 상태에서 다른 프로세스의 자원을 요구하는 것입니다. 셋째, 비선점은 다른 프로세스가 사용 중인 자원을 뺏어올 수 없다는 것이며, 마지막으로 순환 대기는 여러 프로세스의 자원 할당과 요구가 순환 구조를 띄고 있는 것입니다. 데드락 .. 2024. 2. 1.
[운영체제/OS] 동기화 문제 면접 질문 및 답변 동기화에 대해 설명해 주세요. 더보기 프로세스나 스레드가 자원을 공유하면서 작업하는데, 이때 어떤 자원에 대한 일관성을 보장해야 하는 것을 동기화라고 합니다. 하지만 어떤 프로세스가 먼저 실행되는가에 따라 결과가 달라지는 상황을 마주하는데, 이것을 동기화 문제라고 부릅니다. 동기화 문제를 해결하기 위한 방법을 알고 계신가요? 더보기 동기화 문제를 해결하기 위한 방법은 세 가지가 있습니다. 첫 번째 뮤텍스, 뮤텍스는 Boolean 자료형을 사용해 임계영역에 대한 lock을 걸고 해제하는 방법입니다. 프로세스가 임계영역에 대한 lock이 해제되었는지 계속해서 확인하는 busy waiting 문제가 발생하여 CPU가 낭비됩니다. 두 번째 세마포어, 세마포어는 Integer 자료형의 세마포어 변수를 이용해 여러.. 2024. 2. 1.