IT237 운영체제 #10 가상 메모리 개념가상 메모리(Virtual Memory) 는 물리 메모리를 추상화하여, 사용자에게는 매우 큰 균일한 저장장소 배열로 보이도록 한다.실제 물리 메모리보다 큰 주소 공간을 사용할 수 있도록 지원한다.가상메모리가 물리 메모리보다 크기가 크다.예) 32비트 시스템: 가상 주소공간 2의 32승 = 4GB, 물리 메모리 512MB가상 메모리의 이점물리 메모리보다 큰 프로그램 실행 가능전체 프로그램이 메모리에 상주할 필요 없음프로세스 간 메모리 공유 가능프로세스 생성 효율성 향상 (예: 쓰기 시 복사)페이징 - 배경초기의 메모리 관리 방식은 연속 메모리 할당(Contiguous Allocation).프로세스는 실행을 위해 연속된 물리 메모리 공간이 필요했음.시간이 지날수록 외부 단편화(External.. 2025. 8. 27. 운영체제 #9 메모리 관리 개요메모리는 현대 컴퓨터 시스템 동작의 핵심으로, 각각 고유한 주소를 갖는 큰 바이트 배열 형태이다.각 프로세스는 자신만의 주소 공간(address space) 을 갖는다. 주소 바인딩 (Address Binding)심볼릭 주소(Symbolic Address) → 논리 주소(Logical Address) → 물리 주소(Physical Address) 변환 과정이 필요하다.이 변환은 다음 시점에 일어날 수 있다:컴파일 시(binding at compile time): 실행 파일에 물리 주소를 직접 기록.적재 시(binding at load time): 실행 시점에 메모리에 적재될 때 주소 결정.실행 시(binding at execution time): 프로그램 실행 도중 MMU가 동적으로 변환.. 2025. 8. 25. 운영체제 #8 교착 상태(Deadlock)프로세스 집합의 모든 프로세스가 같은 집합 내 다른 프로세스가 보유한 자원을 기다리는 상황을 말한다. 이 경우 더 이상 진행이 불가능하며, 시스템은 교착 상태에 빠지게 된다. 교착 상태 발생의 필요조건 (네 가지)교착 상태가 발생하기 위해서는 다음 조건이 모두 충족되어야 한다.상호 배제 (Mutual Exclusion)자원은 한 번에 오직 하나의 프로세스만 사용할 수 있어야 한다.점유하며 대기 (Hold and Wait)최소 하나의 자원을 점유한 상태에서 다른 자원을 기다려야 한다.비선점 (No Preemption)이미 할당된 자원은 사용이 끝나기 전까지 강제로 빼앗을 수 없다.순환 대기 (Circular Wait)프로세스들이 자원을 기다리면서 원형으로 연결된 형태를 이뤄야 한.. 2025. 8. 24. 운영체제 #7 프로세스 동기화의 고전적인 문제Bounded Buffer (Producer-Consumer Problem, 유한 버퍼 문제)생산자와 소비자가 공유 버퍼를 사용할 때 발생하는 동기화 문제.→ 버퍼가 가득 찼을 때 생산자는 대기, 버퍼가 비었을 때 소비자는 대기해야 한다.Reader-Writer Problem (독자-저자 문제)여러 프로세스가 같은 데이터베이스에 접근할 때 발생.→ 여러 Reader는 동시에 접근 가능하지만, Writer는 단독으로 접근해야 한다.Dining Philosophers Problem (식사하는 철학자 문제)여러 프로세스가 한정된 자원(포크)을 공유하면서 교착 상태나 기아 상태 없이 자원을 사용하는 문제.동기화 문제 해결에 사용되는 도구들Mutex / Lock상호 배제를 보장하는 .. 2025. 8. 20. 운영체제 #6 공유 데이터 (Shared Data) 정의여러 프로세스(process) 또는 **스레드(thread)**가 동시에 접근할 수 있는 데이터.위치메인 메모리(RAM) 안에 있는 전역 변수, 힙 영역 데이터, 커널 자원 등혹은 파일, 데이터베이스, I/O 버퍼 같은 외부 저장장치도 공유 데이터가 될 수 있음.특징동시에 여러 주체가 접근할 수 있기 때문에, 동기화(synchronization) 없이는 값이 손상될 수 있음.예시은행 계좌 잔액두 명이 동시에 잔액 = 잔액 - 100 같은 출금을 하면, 실행 순서에 따라 최종 잔액이 달라질 수 있음.잔액(계좌 금액)은 공유 데이터. 경쟁 조건 (Race Condition)정의여러 프로세스가 공유 데이터에 동시에 접근할 때 발생하며, 실행 순서에 따라 결과가 달라질.. 2025. 8. 19. 운영체제 #5 CPU 스케줄링 개요역할: 준비 큐(Ready Queue)에 있는 프로세스 중 하나를 선택하여 CPU를 할당.디스패처(Dispatcher): 선택된 프로세스에 실제로 CPU 제어권을 넘겨주는 모듈.선점(Preemptive) vs 비선점(Non-preemptive)선점: 실행 중인 프로세스를 중단시키고 CPU를 다른 프로세스에 할당 가능. (현대 OS 대부분 채택)비선점: 실행 중인 프로세스가 자발적으로 CPU를 반납해야 다른 프로세스 실행 가능. 스케줄링 성능 평가 기준 (5가지)CPU 이용률 (CPU Utilization) – CPU가 쉬지 않고 일하는 비율.처리량 (Throughput) – 단위 시간당 완료된 프로세스 개수.총 처리 시간 (Turnaround Time) – 프로세스 제출 시점부터 종료.. 2025. 8. 18. 이전 1 2 3 4 ··· 40 다음