About
Book
Github
개발기
About
Book
Github
개발기
#OS
포스트
15
운영체제와 리눅스에 대해 이해하기
들어가며 몇 번의 프로젝트에서 인프라를 맡아 리눅스를 어느 정도 다룰 줄은 알지만 체계적으로 공부해본 적이 없습니다. 이번 기회에 리눅스 개발 코드도 뜯어보면서 심도 깊게 이해해보겠습니다. 리눅스에 대해서 공부하기 전에 리눅스는 운영체제의 일종이므로 운영체제에 대해서 먼저 이해해야 합니다. 이번 글에서는 운영체제가 무엇인지 간단하게 공부하고, 리눅스를 입문해봅시다. 운영체제 개요 운영체제란? 운영체제의 정의 운영체제(Operating System; OS)는 컴퓨터의 CPU, 메모리와 같은 하드웨어 자원을 효율적으로 관리하는 시스템 소프트웨어입니다. 또한 응용 프로그램이 동작할 수 있는 환경을 제공하고, 사용자와 하드웨어 간의 상호작용을 위해 사용자 인터페이스 를 제공하는 역할을 하기도 합니다. 운영체제의
인프라
-
Linux
#
OS
#
Linux
2025.02.15
· Updated 2025.02.16
Detail
운영체제 개요
운영체제란 무엇인가? 운영체제 (Operating System, OS) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 커널 운영체제의 핵심 부분으로 메모리에 상주하는 부분 좁은 의미의 운영체제 : 커널 넓은 의미의 운영체제 : 커널 + 각종 주변 시스템 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 을 제공 운영체제의 분류 동시 작업 가능 여부 단일 작업(Single Tasking) - 한 번에 하나의 작업만 처리 다중 작업(Multi Tasking) - 동시에 두 개 이상의 작업을 처리 사용자의 수 단일 사용자(Single User) 다중 사용자(Multi User) 처리 방식 일괄 처리(
Computer Science
-
OS
#
OS
2024.12.16
· Updated 2025.01.19
Detail
입출력 시스템
디스크 구조 디스크는 대용량 데이터를 영구적으로 저장하는 대표적인 저장 장치입니다. 이차 메모리라고도 합니다. 디스크의 물리적 구조 HDD는 여러 개의 자기 디스크 플래터로 구성되며, 각 플래터는 양면에 데이터를 저장할 수 있습니다. 플래터는 고속으로 회전하며, 데이터를 읽고 쓰기 위해 디스크 헤드(head)가 움직입니다. 디스크의 주요 구성 요소 플래터(Platter) 트랙(Track) 섹터(Sector) 실린더(Cylinder) 디스크 헤드(Head) 암(Arm) 스핀들(Spindle) 디스크의 논리적 구조 운영 체제는 디스크의 물리적 구조를 기반으로 데이터를 저장하고 관리합니다. 디스크의 논리적 구조는 블록 단위로 데이터를 관리하며, 블록은 디스크의 섹터와 관계됩니다. 블록(Block) 파일 시스템(F
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
파일 시스템
파일과 파일 시스템 파일 (File) 파일은 컴퓨터에서 데이터를 저장하기 위한 논리적인 단위입니다. 텍스트, 이미지, 비디오, 오디오, 프로그램 실행 파일 등 다양한 데이터 형식이 파일로 저장됩니다. 운영체제는 다양한 저장장치를 File이라는 논리적 단위로 볼 수 있게 해줍니다. 메타데이터 (Metadata; File Attribute) 메타데이터는 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들의 집합입니다. 파일 이름, 유형, 저장된 위치, 파일 사이즈와 같은 정보 뿐만 아니라 읽기/쓰기/실행에 대한 접근 권한과 생성 시간/변경 시간/사용 시간, 소유자 등의 정보까지 기록되어 있습니다. 파일 시스템 파일 시스템은 운영체제에서 파일을 관리하는 소프트웨어 구현부로 하드 디스크, SSD와 같은
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
가상 메모리
요구 페이징 요구 페이징은 프로그램 실행 시 프로세스를 구성하는 모든 페이지를 한꺼번에 올리는 것이 아니라 당장 사용할 페이지만 메모리에 올리는 방식입니다. 따라서 특정 페이지에 대한 요청이 CPU로부터 들어온 후에 해당 페이지를 메모리에 적재합니다. 요구 페이징은 당장 필요한 페이지만 메모리에 적재하기 때문에 메모리 사용량이 감소하고 프로세스 전체를 메모리에 올리는 데 소요되는 입출력 오버헤드를 줄입니다. 추가적으로 물리적 메모리의 용량 제약을 벗어나 물리적 메모리보다 더 큰 프로그램도 실행할 수 있습니다. 각 페이지가 메모리에 존재하는지 여부를 판단하기 위해 요구 페이징에서 유효-무효 비트(Valid-InValid Bit) 를 표시합니다. 이러한 비트는 각 프로세스를 구성하는 모든 페이지에 존재해야 하
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
메모리 관리
한정된 메모리 공간을 어떻게 하면 효율적으로 관리할 수 있을까? CPU는 2차 메모리 즉 저장장치에 직접 접근할 수 없으며 필요한 데이터를 메인 메모리에서 가져와야 합니다. 하지만 메모리 공간은 한정적입니다. 여러 개의 프로그램을 동시에 실행해야 하는 운영체제는 한정적인 메모리 공간을 최대한 효율적으로 관리해서 CPU에게 필요한 데이터를 빨리 제공해야 하는 것이 목표입니다. CPU는 주소 값을 통해 메모리에 접근하기 때문에 주소 공간에 대해 먼저 알아봅시다. 주소 공간(Address Space) 운영체제에서 주소 공간이란 프로세스가 접근할 수 있는 메모리 주소 범위를 의미합니다. 각 메모리 주소는 1 바이트(8 비트)를 가리키며, 주소 하나가 비트가 아니라 8비트 (1바이트) 단위를 식별합니다. 위의 그림
Computer Science
-
OS
#
OS
2025.01.07
· Updated 2025.01.08
Detail
데드락
교착 상태(Deadlock) 일련의 프로세스가 서로가 이미 가지고 있는 자원을 기다리면서 block되어 있는 상태 데드락 발생의 네 가지 조건 상호배제: 매 순간 하나의 프로세스만 자원을 사용할 수 있음 비선점: 프로세스가 자원을 강제로 빼앗기지 않고 스스로 내어놓음 점유 대기 : 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유한 자원을 내놓지 않고 계속 가짐 순환 대기 : 자원을 기다리는 프로세스 간에 사이클이 형성되어야 함 자원 할당 그래프 사이클이 생기면 Deadlock 근데 자원 안의 instance의 개수가 중요한데, instance의 개수가 여러 개면 데드락이 발생하는지 따져봐야함 데드락의 처리 방법 Deadlock Prevention 데드락을 미연에 방지하는 방법 중 Prevention은 가
Computer Science
-
OS
#
OS
2024.12.31
· Updated 2025.01.01
Detail
병행 제어 2
공유 데이터에 접근하는 Critical Section 문제를 해결하기 위해 상호 배제, 진행, 유한 대기 조건을 충족해야 하며, 세마포어와 다양한 알고리즘을 통해 동시 접근을 관리할 수 있다. Block/Wakeup 방식이 일반적으로 더 좋지만, Critical Section이 짧을 경우 Busy-wait 방식이 유리할 수 있다.
Computer Science
-
OS
#
OS
2024.12.31
· Updated 2025.01.01
Detail
병행 제어 1
데이터 접근 시 경쟁 상태가 발생할 수 있으며, 이를 해결하기 위해 프로세스 간 실행 순서를 정하고 Lock을 사용하는 것이 중요하다. 커널 모드에서의 Context Switch와 인터럽트 처리 시 Race Condition을 방지하기 위한 방법도 설명된다.
Computer Science
-
OS
#
OS
2024.12.25
· Updated 2024.12.31
Detail
CPU 스케줄링
CPU 스케줄링은 CPU와 I/O 버스트의 개념을 다루며, 다양한 스케줄링 알고리즘(FCFS, SJF, Priority Scheduling, Round Robin 등)을 통해 프로세스의 효율적인 실행을 목표로 한다. 각 알고리즘은 대기 시간, 응답 시간, 처리량 등을 최적화하는 방식으로 작동하며, 멀티레벨 큐와 피드백 큐를 통해 프로세스의 우선순위를 조정할 수 있다.
Computer Science
-
OS
#
OS
2024.12.25
· Updated 2024.12.31
Detail
1
2
© Churnobyl 성철민
Contact: tjdcjfals@gmail.com