프로세스 메모리 구조 프로세스의 메모리 영역은 여러 부분으로 나뉜다. 우선 간단하게 Stack, Heap, TEXT 영역의 개념을 살펴보자! Stack 스택은 함수 호출과 관련된 정보를 저장하는 메모리 공간이다. 함수를 호출할 때마다 함수의 매개변수, 반환 주소, 지역 변수가 스택에 저장된다. 함수 호출시 새로운 stack 프레임이 생성되어 스택에 쌓이고, 함수 종료시 해당 스택 프레임이 제거 된다. 스택 프레임이란?스택 프레임은 쉽게 말해 함수의 호출 정보 모음이다. 함수 호출시 스택 영역에 차례대로 저장되는 것들을 말한다. 스택 프레임이라는 개념 덕분에 함수가 종료되면 이전 상태로 되돌아갈 수 있다. HEAP 힙은 동적 메모리 할당이 수행되는 공간이다. 이것을 풀어서 쉽게 생각해보면, 개발자가 ..
강의를 들으면서 정리한 강의 노트입니다. 강의 내용 외에도 이해가 잘 안가는 부분들을 쉽게 정리하려 노력했습니다. 반효경 교수님 운영체제 강의를 들으시는 분들이 이 글을 통해 도움이 되었으면 좋겠습니다! (혹시 포스팅 중에 잘못된 내용이 있으면 댓글로 지적 부탁드립니다..!)강의 노트 목록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바이트입니다. 디스크의 헤드는 각 원판의 읽기/쓰기가 가능한 면마다 하나씩 존재합니다. 헤드의 개수, 트랙(또는 실린더)의 개수, 그리고 각 트랙마다 섹터의 개수에 따라 디스크의 전체 용량과 물리적 특성이 결정됩니다. 섹터는 디스크 내부에서 데이터를 관리하는 ..
1. Page Cache와 Buffer Cache 컴퓨터 시스템에서 데이터의 빠른 접근과 관리를 위해 Cache라는 개념을 사용합니다. 가상 메모리 시스템과 파일 시스템에서 데이터를 캐싱하는 방법에는 각각 Page Cache와 Buffer Cache라는 캐싱 매커니즘이 사용됩니다. (1) Page Cache (페이지 캐시) 가상 메모리 시스템에서는 Page Cache가 사용됩니다. Page Cache는 물리적 메모리의 페이지 프레임을 관리하며, 주로 가상 메모리의 페이지 프레임을 캐싱합니다. 이 페이지 프레임은 Swap 영역보다 빠른 메모리에 위치하여 데이터의 빠른 접근을 가능하게 합니다. Page Cache는 운영체제가 페이지 캐시에서 데이터를 찾을 때 하드웨어 주소 변환만 수행하므로 접근 시간에 대한..
파일 시스템은 실제로 정말 많은 종류가 있습니다. 사용자가 파일 시스템에 접근할 때 각 파일 시스템의 특정한 시스템 콜 인터페이스를 전부 알아야 한다면 매우 불편할 것입니다. 이를 해결하기 위해 운영 체제는 개별 파일 시스템 위에 가상 파일 시스템(VFS)이라는 추상화 계층을 두고 있습니다. 1. VFS(가상 파일 시스템) VFS는 각 파일 시스템의 특성을 추상화하여 동일한 시스템 콜 인터페이스(API)를 제공합니다. 이를 통해 다양한 파일 시스템에 상관없이 사용자는 VFS 인터페이스를 통해 파일 시스템에 접근할 수 있어 편리합니다. 2. NFS (네트워크 파일 시스템) 파일 시스템이 Local Storage에 저장될 수도 있지만, 원격에 저장되어 있는 파일 시스템에 접근할 수 있습니다. 이때 클라이언트..