운영체제

프로세스 동기화 도구에는 크게 뮤텍스 락과 세마포어가 있다.  둘 차이를 간단하게만 말해보면, 뮤텍스 락은 공유 자원에 하나의 스레드가 접근가능하고 세마포어는 공유자원에 여러 스레드가 접근 가능하다는 것이다.    지금까지 너무 얕게만 이해하고 있었다는 생각을 했다. 세마포어는 여러 스레드도 접근 가능하고, 뮤텍스 락을 대체할 수도 있기 때문에, 세마포어가 좋은 거 아닌가 라는 생각을 막연하게 해왔었다.  하지만 내부 동작 방식을 살펴보면 이야기는 달라진다. 문맥 교환이라는 오버헤드를 배제한 설명이기 때문이다. 이게 무슨 말인지 한번 살펴보자.   1. 뮤텍스락 뮤텍스락은 공유 자원에 접근하기 위해 뮤텍스를 획득해야하고, 자원 사용이 끝나면 뮤텍스를 해제하는 방식이다. 그리고 하나의 스레드만 뮤텍스를 획..
강의를 들으면서 정리한 강의 노트입니다. 강의 내용 외에도 이해가 잘 안가는 부분들을 쉽게 정리하려 노력했습니다. 반효경 교수님 운영체제 강의를 들으시는 분들이 이 글을 통해 도움이 되었으면 좋겠습니다!   (혹시 포스팅 중에 잘못된 내용이 있으면 댓글로 지적 부탁드립니다..!)강의 노트 목록1. 운영체제 서론 (Introduction to Operating Systems) 2. 운영체제 구조 : 컴퓨터 시스템의 구성(System Structure & Program Execution 1) 3. 운영체제 구조 : 동기식 입출력과 비동기식 입출력, 저장 장치 계층 구조, 프로그램의 실행(System Structure & Program Execution 2) 4. 프로세스 : 프로세스의 개념, 프로세스의 상태..
1. Disk Scheduling Algorithm디스크 스케줄링 알고리즘은 디스크에 대한 외부 요청을 효율적으로 처리하기 위해 사용됩니다. 스케줄링 알고리즘이 구현되는 곳은 디스크 내부가 아니기 때문에, 대부분 스케줄러는 디스크의 정확한 위치를 알지 못합니다. 그래서 섹터와 매핑된 논리 블록 번호를 기반으로 스케줄링을 하게 됩니다. 실제 구현에서는 자주 사용되는 방법은 아니지만 이해를 돕기 위해서, 이번 포스팅에서는 각각의 알고리즘을 실린더 번호를 예시로 살펴보겠습니다.  (1) FCFS (First Come First Serve)이 알고리즘은 먼저 도착한 순서대로 요청을 처리합니다. 이로 인해 헤드의 이동거리가 길어져 비효율적일 수 있습니다.  (2) SSTF (Shortest Seek Time Fi..
1. 디스크 구조 가장 일반적인 보조 기억 장치인 하드 디스크는 아래 사진과 같은 구조로 되어있습니다. 디스크는 원판(plotter), 팔(arm), 헤드(head)로 구성되어 있습니다. 원판에는 원 모양의 트랙(track)이 존재하며, 모든 원판에서 같은 위치를 갖는 트랙들의 집합을 실린더(cylinder)라고 합니다. 각 트랙은 섹터(sector)로 구성되어 있으며, 섹터는 데이터를 읽거나 기록할 때의 기본 단위입니다. 보통 섹터의 크기는 512바이트입니다. 디스크의 헤드는 각 원판의 읽기/쓰기가 가능한 면마다 하나씩 존재합니다. 헤드의 개수, 트랙(또는 실린더)의 개수, 그리고 각 트랙마다 섹터의 개수에 따라 디스크의 전체 용량과 물리적 특성이 결정됩니다. 섹터는 디스크 내부에서 데이터를 관리하는 ..
파일 시스템은 실제로 정말 많은 종류가 있습니다. 사용자가 파일 시스템에 접근할 때 각 파일 시스템의 특정한 시스템 콜 인터페이스를 전부 알아야 한다면 매우 불편할 것입니다. 이를 해결하기 위해 운영 체제는 개별 파일 시스템 위에 가상 파일 시스템(VFS)이라는 추상화 계층을 두고 있습니다. 1. VFS(가상 파일 시스템) VFS는 각 파일 시스템의 특성을 추상화하여 동일한 시스템 콜 인터페이스(API)를 제공합니다. 이를 통해 다양한 파일 시스템에 상관없이 사용자는 VFS 인터페이스를 통해 파일 시스템에 접근할 수 있어 편리합니다. 2. NFS (네트워크 파일 시스템) 파일 시스템이 Local Storage에 저장될 수도 있지만, 원격에 저장되어 있는 파일 시스템에 접근할 수 있습니다. 이때 클라이언트..
1. Directory Implementation (디렉터리 구현) 디렉터리는 파일 시스템에서 파일의 메타데이터를 저장하고 관리하는 요소입니다. 디렉터리를 구현하는 방법에는 Linear List(연결 리스트)와 Hash Table(해시 테이블) 2가지 방법이 있습니다. 각 방법의 특징과 장단점을 살펴보겠습니다. (1) Linear List (연결 리스트) Linear List 방식은 파일의 이름과 메타데이터를 순차적으로 저장합니다. 각 엔트리는 파일의 이름, 크기, 소유자 등의 정보로 구성됩니다. 이 메타데이터는 일정한 크기로 관리되며, 디렉터리 내에서 순차적으로 저장됩니다. 장점으로는 구현이 간단하고 이해하기 쉽습니다. 그리고 파일 이름의 구성을 알고 있다면 순차적으로 엔트리를 찾을 수 있습니다. 단..
동구름이
'운영체제' 태그의 글 목록