728x90

CS/운영체제 15

[운영체제] 메모리 관리 전략(Memory Management Unit)

컴퓨터 시스템에서 프로세스의 메모리를 효율적으로 할당하고 관리하는 방법 메모리 관리 전략의 주요 목표효율성: 메모리를 최대한 효율적으로 할당하고, 불필요한 공간 낭비를 줄입니다.보호: 각 프로세스가 서로 독립된 메모리 공간을 사용하게 하여 데이터의 무결성을 유지하고, 권한 없는 접근을 방지합니다.유연성: 메모리 자원을 동적으로 할당하고 회수하여 다양한 크기의 프로세스를 지원합니다.성능 최적화: 메모리 접근 시간을 줄이고, 시스템 전반의 성능을 최적화합니다.주요 메모리 관리 전략메모리 관리 전략은 주로 고정 분할(Fixed Partitioning), 가변 분할(Variable Partitioning), 가상 메모리(Virtual Memory) 등으로 분류됩니다.1. 고정 분할(Fixed Partitioni..

CS/운영체제 2024.10.31

[운영체제] 가상 메모리(Virtual Memory)

물리적 메모리의 용량보다 더 큰 메모리 공간을 제공하는 메모리 관리 기법가상 메모리의 주요 목적메모리 확장: 실제 메모리보다 큰 메모리 공간을 제공하여, 큰 프로그램이 실행 가능하게 합니다.프로세스 간 메모리 보호: 각 프로세스가 자신만의 독립된 메모리 공간을 가짐으로써 다른 프로세스에 영향을 주지 않도록 보호합니다.다중 프로세스 지원: 여러 프로세스가 동시에 실행될 수 있도록 하여 CPU와 메모리 자원의 효율성을 높입니다.가상 메모리의 구현 방식가상 메모리는 페이징(Paging) 또는 세그멘테이션(Segmentation) 기법으로 구현됩니다.페이징(Paging)개념: 가상 메모리를 일정 크기의 페이지 단위로 나누어 관리합니다. 프로세스는 고정된 크기의 페이지로 나뉘고, 물리 메모리는 같은 크기의 페이지..

CS/운영체제 2024.10.31

[운영체제] IPC(Inter Process Communication)

운영체제에서 서로 다른 프로세스 간에 데이터를 주고받는 방법  IPC 방식IPC는 다양한 방식으로 구현되며, 각 방식은 데이터의 양, 속도, 동기화 필요성에 따라 선택됩니다.파이프 (Pipe)개념: 파이프는 한 프로세스에서 데이터를 전송하고 다른 프로세스가 이를 읽는 일방향 통신 방식입니다.특징:기본적으로 단방향 통신이며, 부모-자식 프로세스 간에 주로 사용됩니다.익명 파이프는 동일한 부모 프로세스에서 생성된 프로세스 간에 사용됩니다.**명명된 파이프(Named Pipe, FIFO)**는 서로 다른 프로세스 간에도 통신이 가능합니다.메시지 큐 (Message Queue)개념: 운영체제가 제공하는 큐(Queue) 구조를 사용해 프로세스 간에 메시지를 주고받는 방식입니다.특징:비동기적 통신이 가능하여, 보낸..

CS/운영체제 2024.10.31

[운영체제] 메모리 단편화(Memory Fragmentation)

메모리가 여러 조각으로 나누어져 할당할 수 있는 전체 용량이 충분함에도 불구하고 연속된 공간을 찾지 못해 메모리를 효율적으로 사용하지 못하는 현상   1. 외부 단편화 (External Fragmentation)개념: 메모리의 여러 위치에 작은 빈 공간들이 분산되어 있는 상태로, 필요한 연속된 크기의 메모리 공간을 찾지 못해 메모리 할당이 불가능해지는 현상입니다.예시: 10KB, 20KB, 5KB의 빈 공간이 여러 위치에 흩어져 있을 때, 30KB의 연속된 메모리를 요청하면 할당이 불가능합니다.주로 발생하는 경우: 가변 크기 메모리 할당 방식에서 발생하며, 메모리 할당과 해제가 빈번하게 이루어질 때 빈 공간이 쪼개지며 나타납니다.해결 방법메모리 압축(Compaction): 메모리의 빈 공간을 한 곳으로 ..

CS/운영체제 2024.10.31

[운영체제] 페이지 교체 알고리즘

가상 메모리 시스템에서 페이지 부재(Page Fault)가 발생했을 때, 새로운 페이지를 메모리에 불러오기 위해 어떤 페이지를 제거할지 결정하는 방법입니다. 페이지 교체 알고리즘은 메모리 효율성을 극대화하고 페이지 부재를 최소화하는 것이 목표입니다.주요 페이지 교체 알고리즘FIFO (First-In, First-Out) 알고리즘개념: 가장 먼저 메모리에 들어온 페이지를 가장 먼저 제거하는 방식입니다.특징:구현이 단순하고, 큐를 사용하여 페이지를 관리합니다.**Belady의 모순(Belady’s Anomaly)**이 발생할 수 있습니다. 즉, 프레임 수가 증가해도 페이지 부재가 줄어들지 않고 오히려 증가할 수 있습니다.OPT (Optimal Page Replacement) 알고리즘개념: 앞으로 가장 오랫동..

CS/운영체제 2024.10.31

[운영체제] CPU 스케줄링

CPU를 어떤 프로세스에 할당할지 결정하는 작업CPU 스케줄링의 목적공정성(Fairness): 모든 프로세스가 공평하게 CPU 자원을 사용할 수 있도록 합니다.CPU 활용률 극대화: CPU가 유휴 상태로 있지 않고, 최대한 많은 작업을 처리할 수 있도록 합니다.응답 시간 최소화: 사용자 인터랙션이 필요한 경우, 빠른 응답 시간을 보장합니다.처리율 최적화: 주어진 시간 동안 최대한 많은 작업을 완료할 수 있도록 합니다.대기 시간 최소화: 프로세스가 대기열에서 기다리는 시간을 줄입니다.CPU 스케줄링 방식CPU 스케줄링 방식은 크게 **비선점형(Non-Preemptive)**과 **선점형(Preemptive)**으로 나뉩니다.비선점형 스케줄링개념: 한 번 CPU를 할당받은 프로세스는 작업이 완료될 때까지 C..

CS/운영체제 2024.10.31

[운영체제] 교착상태(Deadlock, 데드락)의 정의, 발생 조건, 해결 방법

교착상태란 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리며 둘 다 영원히 끝나지 않는 상황을 뜻합니다.교착상태 발생 조건교착상태는 다음 네 가지 조건이 모두 충족될 때 발생합니다. 이 조건들은 Coffman의 조건이라고도 합니다.상호 배제(Mutual Exclusion): 자원은 한 번에 하나의 프로세스만 사용할 수 있습니다.점유와 대기(Hold and Wait): 프로세스가 하나 이상의 자원을 점유한 상태에서, 추가적인 자원을 요청하며 기다립니다.비선점(No Preemption): 다른 프로세스가 점유하고 있는 자원을 강제로 빼앗을 수 없습니다. 프로세스가 스스로 자원을 해제할 때까지 기다려야 합니다.환형 대기(Ci..

CS/운영체제 2024.10.31

[운영체제] 시스템 콜(System Call)

시스템 콜의 역할시스템 콜은 응용 프로그램과 운영체제 간의 인터페이스 역할을 합니다. 사용자는 운영체제의 커널에 직접 접근할 수 없으므로, 시스템 콜을 통해 안전하게 커널 기능을 사용할 수 있습니다. 시스템 콜을 이용하여 사용자 프로그램은 하드웨어 자원에 접근하고 관리할 수 있게 됩니다.시스템 콜의 종류시스템 콜은 기능에 따라 여러 종류로 나눌 수 있습니다.프로세스 제어 (Process Control)기능: 프로세스 생성, 종료, 일시 중단 및 재개, 프로세스 우선순위 변경 등.예: fork(), exec(), exit(), wait()파일 관리 (File Management)기능: 파일 생성, 삭제, 열기, 닫기, 읽기, 쓰기, 파일 속성 변경 등.예: open(), read(), write(), cl..

CS/운영체제 2024.10.31

[운영체제] 인터럽트(Interrupt)

컴퓨터 시스템에서 CPU가 현재 작업을 중단하고 특정 사건을 처리해야 하는 상황이 발생할 때, CPU에 이를 알리는 신호인터럽트의 동작 과정인터럽트 발생: 입출력 장치, 타이머, 사용자 입력, 예외 상황 등으로 인해 인터럽트 신호가 발생합니다.현재 작업 중단 및 상태 저장: CPU는 현재 작업을 중단하고, 현재 프로세스의 상태(레지스터 정보 등)를 저장해 둡니다.인터럽트 서비스 루틴(ISR) 실행: 인터럽트를 처리하기 위한 특정 코드인 인터럽트 서비스 루틴(Interrupt Service Routine, ISR)을 실행합니다.상태 복구 및 작업 재개: ISR이 완료되면 CPU는 저장된 상태를 복원하여 중단된 작업을 이어서 수행합니다.인터럽트의 종류인터럽트는 발생 원인에 따라 크게 하드웨어 인터럽트와 소프..

CS/운영체제 2024.10.31

[운영체제] 페이징(Paging)과 세그멘테이션(Segmentation)

메모리 관리 기법으로, 프로세스가 필요한 메모리 공간을 효과적으로 관리하고 할당하는 방식입니다. 각각의 기법은 가상 메모리를 물리적 메모리에 효율적으로 배치하고, 프로세스를 분할하여 메모리 낭비를 줄이기 위해 사용됩니다. 페이징(Paging)개념: 페이징은 프로세스를 고정된 크기의 블록으로 나누어 메모리에 할당하는 방식입니다. 프로세스를 일정한 크기의 페이지(Page)로 나누고, 물리 메모리는 동일한 크기의 페이지 프레임(Page Frame)으로 나누어 페이지 단위로 메모리에 적재됩니다.작동 방식:프로세스가 요청하는 메모리 주소를 페이지 번호와 오프셋으로 나눕니다.페이지 테이블(Page Table)을 통해 페이지 번호를 프레임 번호로 변환하여 물리 메모리 주소를 찾습니다.장점: 외부 단편화(Externa..

CS/운영체제 2024.10.31
728x90