[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 가상 메모리(Virtual Memory) - 메모리 관리 방법을 토대로 제공하는 기술 - 다중 프로그래밍 환경에서 흔히 사용하며 메인 메모리보다 더 큰 저장 공간을 제공하는 방법 - 사용자와 논리적 주소를 물리적으로 분리하여 사용자가 메인 메모리 용량을 초과한 프로세스에 주소를 지정해서 메모리를 제한 없이 사용할 수 있도록 하는 것 * 동적 주소 변환(DAT, Dynamic Address Translation) - 가상 주소와 물리적 주소를 매핑하는 방법 - 인위적으로 연속적이며, 가상 주소에서 연속적이라고 메인 메모리에서도 연속적일 필요는 없음 * 요구 페이징 - 가상 메모리에서 많이 사용하는 메모리 관리 방법으로, 프로그램을 실행하려..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 메모리 할당 방법 - 연속 메모리 적재 방법 : 연속적으로 적재 - 비연속(분산) 메모리 적재 방법 : 페이지나 세그먼트 단위로 나눠 여러 곳에 적재 * 연속 메모리 할당 - 고정 분할 방법 : 메모리를 여러 개의 고정된 크기로 분할함 - 가변 분할 방법 : 필요한 만큼 메모리를 할당함 * 고정 분할 방법(Fixed Partition Allocation) - 메모리를 여러 개의 고정된 크기로 분할하고, 분할한 각 메모리는 프로세스, 즉 작업 하나를 실행 할 수 있음 - 논리적 주소가 분할된 메모리보다 크면 오류 발생하고, 작으면 내부 단편화 발생함 - 프로그래밍의 성능이 분할 수에 제한을 받음 * 내부 단편화(Internal Fragme..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 메모리 관리 - 프로세스들을 위해 메모리를 할당하고 제거하며 보호하는 활동 - 디스크에 있는 프로그램을 실행하기 위해 먼저 메모리에 적재한 후 메모리 관리자가 예약된 메모리를 할당해 주는 것도 해당됨 - 다중 프로그래밍 시스템에서는 여러 프로세스가 메모리에 상주할 수 있도록 운영체제가 동적으로 메모리를 세분화 하는 것도 해당됨 - 메모리 관리자는 메모리에 관련된 여러 정책을 수립하고, 정책에 따라 메모리를 관리함(주요 정책 : 적재 정책, 배치 정책, 대치 정책) * 적재 정책(Fetch Policy) - 디스크에서 메모리로 프로세스를 반입할 시기를 결정하는 것 - 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 선입선처리 스케줄링(FCFS, First Come First Served) - 선입선출 스케줄링(FIFO, First In First Out)이라고도 함 - 프로세서를 요청하는 순서대로 프로세서를 할당하며, 선입선출 큐로 구현함 - 비선점 스케줄링 장점 - 스케줄링의 이해와 구현이 단순함 - 준비 큐에 있는 모든 프로세스가 결국 실행되므로 기아 없는 공정한 정책임 - 프로세서가 지속적으로 유용한 프로세스를 수행하여 처리율이 높음 단점 - 비선점식이므로 대화식 프로세스(작업)에는 부적합함 - 장기 실행 프로세스가 뒤의 프로세스(작업)를 모두 지연시켜 평균 대기시간이 길어져 최악의 대기시간이 됨 - 긴 프로세스(작업)가 실행되는 동안 짧은 ..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 스케줄링(Scheduling) - 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정하는 것 - 좋은 스케줄링은 프로세서의 효율성을 높이고, 작업(프로세스)의 응답 시간을 최소화하여 시스템의 작업 처리 능력을 향상 시킴 - 스케줄링이 필요한 프로세스 : 사용자 프로세스, 시스템 호출로 발생하는 시스템 프로세스 - 스케줄링이 필요 없는 프로세스 : 인터럽트 처리, 오류 처리, 사용자의 시스템 호출 등의 사전 처리가 대표적임 * 스케줄링의 목적 - 자원 할당의 공정성 보장 - 단위시간당 처리량 최대화 - 적절한 반환시간 보장 - 예측 가능성 보장 - 오버헤드 최소화 - 자원 사용의 균형 유지 - 반환시간과 자원..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 교착 상태(Deadlock) - 시스템 자원에 요구가 뒤엉킨 상태로, 두 프로세스가 사용하는 자원(비공유)을 서로 기다리고 있을 때 발생함 - 다른 하나를 완료하지 않으면 프로세스를 더 이상 진행할 수 없고, 진행하지 않으면 프로세스를 완료할 수 없음 -> 따라서 둘 이상의 작업이 중단되고 프로세스들은 서로 사용할 자원을 기다리고만 있게 됨 * 프로세스 자원 사용 순서 - 자원 요청 : 프로세스가 필요한 자원을 요청하는데, 해당 자원을 사용할 수 있으면 요청을 즉시 수락하지만 해당 자원을 다른 프로세스가 사용 중이면 요청을 수락할 때까지 기다려야 함 - 자원 사용 : 프로세스가 요청한 자원을 획득하여 사용함. 예를 들어, 요청한 자원이 ..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 병행 프로세스 - 운영체제가 프로세서를 빠르게 전환하여 프로세서 시간을 나눠서 마치 프로세스 여러 개를 동시에 실행하는 것처럼 보이게 하는 것 - 병행 프로세스는 독립 프로세스와 협력 프로세스로 구분함 - 경쟁 관계에 있는 프로세스들은 서로 정보를 교환하지 않지만, 한 프로세스의 수행이 나머지 프로세스의 수행에 영향을 미칠 수 있기 때문에 상호배제가 필요함 * 독립 프로세스 - 단일 처리 시스템에서 수행하는 병행 프로세스 - 다른 프로세스, 데이터와 상태를 공유하지 않고 동작도 재현 가능 - ex. 단일 프로그래밍, 다중 프로그래밍, 다중 처리 * 협력 프로세스 - 다른 프로세스에 영향을 주고받으며, 즉 상호작용하며 특정 기능을 수행하는..
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다. * 스레드(Thread) - 프로세스의 두 가지 특성인 자원과 제어 중 제어만 분리한 실행 단위 - 프로세스 하나는 스레드 한 개 이상으로 나눌 수 있음 - 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보를 공유함 - 스레드는 Program counter (→ 실행 흐름), Register set, Stack space를 무조건 가지고 있음 - 스레드가 동료 스레드와 Code section, Data section, OS resources를 공유함 * 경량 프로세스와 중량 프로세스(LWP & HWP) - 경량 프로세스(LWP, Light Weight Process) : 스레드 중에서 프로세스의 속성 중 일부가 들어 ..