반응형 CS 지식/운영체제 (OS)10 [운영체제] 가상 메모리의 이해와 최적화 (demand paging, 페이지 교체 알고리즘, 프레임 할당) 가상 메모리 (Virtual Memory)정의: 가상 메모리는 user logical 메모리를 physical 메모리로부터 분리하는 개념입니다. 프로그램의 일부분만 메모리에 있어도 실행이 가능하며, 논리 주소 공간이 물리 주소 공간보다 훨씬 커질 수 있습니다.프로세스 관리 효율: 여러 프로세스가 주소 공간을 공유할 수 있게 하고, 프로세스 생성(fork)을 더 효율적으로 만들며, 더 많은 프로그램이 동시에 실행되도록 합니다. 가상 메모리의 배경과 이점코드 실행 및 부분 로딩프로그램 코드는 실행을 위해 메모리에 있어야 하지만, 프로그램 전체가 한 번에 사용되는 경우는 드뭅니다. 오류 처리 코드, 자주 사용되지 않는 루틴, 또는 대규모 데이터 구조 등이 대표적입니다. 가상 메모리 시스템은 프로그램의 부분적인.. 2025. 6. 12. [운영체제] OS의 메모리 할당 관리와 segmentation, 페이징(Paging) 배경지식프로그램은 실행되기 위해 disk에서 memory로 로드되어 프로세스 내에 배치되어야 한다.CPU가 직접 접근할 수 있는 저장소는 main memory와 registers뿐이며, memory unit은 주소와 read 요청, 또는 주소와 데이터 및 write 요청의 스트림만을 인식한다.성능 특성은 다음과 같다:Register access: 1 CPU clock 이하의 시간Main memory access: 여러 사이클이 소요되어 stall을 유발Cache: main memory와 CPU registers 사이에 위치하여 성능 향상올바른 동작을 위해서는 memory protection이 필요하다.Base and Limit RegistersBase register와 limit register의 쌍이 .. 2025. 5. 31. [운영체제] OS의 교착상태(Deadlock) 이론과 해결 알고리즘 (Banker's Algorithm, Safety Algorithm, Detection Algorithm, 자원 그래프) System Model시스템은 resource들(R1, R2, ..., Rm)로 구성됩니다.각 resource type은 CPU cycles, memory space, I/O devices와 같은 자원을 의미하며, 각 resource type Ri는 Wi개의 인스턴스를 가집니다. 프로세스는 다음과 같은 순서로 자원을 활용합니다:Request: 자원 요청Use: 자원 사용Release: 자원 해제Deadlock CharacterizationDeadlock은 다음 4가지 조건이 동시에 충족될 때 발생합니다:Mutual Exclusion: 한 번에 하나의 프로세스만 특정 자원을 사용할 수 있음.Hold and Wait: 자원을 보유한 프로세스가 다른 프로세스가 점유한 추가 자원을 요청하며 대기.No Preem.. 2025. 5. 31. [운영체제] OS의 동기화(Synchronization) 개념과 기법 종류 (lock, semaphore, deadlock, condition variables, monitor) - 락, 세마포어, 교착상태, 모니터 운영체제 Synchronization운영체제에서 Synchronization은 프로세스 간 자원 접근을 관리하고 일관성을 유지하기 위한 중요한 메커니즘이다. 여러 프로세스가 동시에 실행될 때 공유 자원에 대한 접근을 제어함으로써 데이터 무결성을 보장한다. Background프로세스는 동시에 실행될 수 있으며(concurrently), 언제든지 중단될 수 있어 부분적으로만 실행이 완료될 수 있다. 공유 데이터에 대한 동시 접근은 데이터 불일치를 초래할 수 있다. 데이터 일관성을 유지하기 위해서는 협력하는 프로세스들의 순차적 실행을 보장하는 메커니즘이 필요하다. 문제 예시로, 모든 버퍼를 채우는 생산자-소비자 문제의 해결책을 제공하고자 한다. 이를 위해 가득 찬 버퍼의 수를 추적하는 정수형 counter를 .. 2025. 5. 10. [운영체제] OS의 스케쥴링의 방식과 멀티레벨 스케쥴링, 스레드 스케쥴링 (PCS, SCS) - CPU Scheduling CPU SchedulingCPU가 실행할 프로세스를 선택하는 행위를 CPU 스케줄링이라고 한다.Basic ConceptsCPU가 놀지 않고 효율을 극대화하기 위해 스케줄링 알고리즘이 필요하다.레디 큐(ready queue) 에 여러 프로세스가 대기 중일 때(멀티프로그래밍 환경에서) 의미가 있다.Instruction CycleCPU executionI/O wait : 이때 CPU는 사용되지 않음프로세스는 CPU burst → I/O burst → ... 형태로 번갈아가며 수행된다.이때 CPU burst의 분배가 스케줄링의 핵심이다.CPU SchedulerShort-term Scheduler레디 큐에서 실행할 프로세스를 선택하고, CPU 실행 권한을 부여한다.프로세스 상태 변화에 따라 스케줄러가 작동하는 경.. 2025. 4. 15. [운영체제] OS의 스레드 종류(User, Kernel)와 관련 아키텍처 소개 운영체제 스레드 (Threads)Multithreaded Server 아키텍처서버는 accept()라는 블로킹 함수를 실행해서 대기하다가, 요청을 받으면 소켓을 할당을 해서 read()라는 블로킹 함수로 읽을 수 있다. 서버는 클라이언트 연결요청을 기다린다. 클라이언트가 보낸 요청을 읽어서 수행한다.request는 이미 연결이 성공 후 보내는 것이다.서버는 read()함수를 이용해서 서버가 처리를 해준다. → task → 별도의 스레드로 테스크를 할당한다.accept(), read()는 동시에 처리해도(순서가 지켜지지 않아도) 되므로 메인 스레드는 항상 accept()하면서 concurrent하게 진행이 된다.장점Responsiveness: 프로세스의 일부가 block 되더라도 다른 task는 진행된다... 2025. 4. 13. [운영체제] OS의 프로세스(Process)의 개념과 구조, IPC 매커니즘 프로세스같은 프로그램을 실행하는 프로세스는 여러 개 있을 수 있다.프로그램의 종류Batch System: JobsTime Shared System: User Programs, TasksJob = Process프로세스는 실행 중인 프로그램이다.하나의 프로세스 실행은 순차적으로 진행되며, 레디 큐(Ready Queue)에 들어가 선택될 때까지 대기한다.프로세스의 내부 구성프로그램 코드: 텍스트 영역CPU 레지스터: 현재 프로세스의 실행 정보 (PC: 다음 명령 주소)Stack: 임시 데이터를 저장하는 공간 (액티베이션 레코드 포함)함수 파라미터, 반환값, 로컬 변수 포함Data Section: 전역 변수 및 static 변수Heap: 프로세스 종료 시까지 유지, 동적 메모리 할당 (malloc 등 시스템 콜.. 2025. 4. 13. 이전 1 2 다음