2024/12 77

[쉽게 배우는 운영체제] 7. 물리 메모리 관리

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다1. 개요메모리 관리의 복잡성CPU메모리의 내용을 가져오거나, 작업 결과를 메모리에 저장하기 위해 MAR을 사용함MAR에 필요한 메모리 주소를 넣으면 데이터를 가져오거나 기록할 수 있음 시분할 시스템모든 응용 프로그램이 메모리에 올라와 실행되므로 메모리 관리가 복잡함 이러한 복잡한 메모리 관리는 메모리 관리 시스템(MMS)에서 담당함 메모리 관리의 이중성프로세스 입장에서는 메모리를 독차지하려 하고, 메모리 관리자 입장에서는 되도록 효율적으로 쓰고싶어 하는 것 메모리 관리자메모리가 부족할 경우, 새로운 공간을 확보하기 위해 옆의 프로세스를 밀어냄더 큰 공간으로 해당 프로세스를 옮겨줌빈 공간이 생기면 합쳐서 하나의 큰 공간을 만듬 fetch프로세..

OS 2024.12.12

[쉽게 배우는 운영체제] 6. 교착상태

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다1. 개요교착상태2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리는 무한루프에 빠진 상태여러 프로세스가 함께 작업을 수행하다 보니 자연적으로 일어나는 문제OS는 감시를 하다 교착상태가 발생하면 강압적으로 해결해야 함 발생시스템 자원: 다른 프로세스와 공유할 수 없는 자원을 사용할 경우 (printer, recorder)공유 변수: 제대로 동기화되지 않아 무한 대기 발생응용 프로그램: 데이터베이스의 특정 데이터 락을 걸어 다른 트랜잭션이 접근하지 못할 경우 자원 할당 그래프프로세스가 어떤 자원을 사용중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프로 표현한 것 2. 필요조건상호 배제한 프로세스가 사용하는 자원은 다른 프로세..

OS 2024.12.12

[쉽게 배우는 운영체제] 5-1. 프로세스 동기화

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 프로세스 간 통신종류스레드간 통신같은 호스트에서 프로세스 간 통신공유 메모리의 참조 변수파일파이프운영체제가 제공하는 동기화 통신 방식파일 입출력과 같이 open()으로 file descriptior를 얻어 씀단방향 통신동기 방식송신자가 write() 하는 순간 동기화가 이루어짐 다른 호스트에서 프로세스 간 통신 (네트워크)Socket네트워크 상에서 두 프로세스가 데이터를 주고받기 위해 사용하는 endpoint (OS가 제공하는 API)양방향 통신동기 방식RPC (Remote Procedure Call)다른 호스트에 있는 프로세스의 함수를 호출하는 매커니즘추상화를 제공하여 쉽게 사용할 수 있으며, 원격 서버에서 실제 호출됨서로 다른 플랫..

OS 2024.12.12

[쉽게 배우는 운영체제] 4-2. CPU 스케줄링: 인터럽트 처리

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 이벤트 드리븐시스템이나 애플리케이션에서 발생하는 이벤트를 중심으로 동작하는 방식이벤트 발생 시, 콜백 함수가 호출되어 이벤트가 처리됨비동기적 방식으로 동작여러 이벤트가 동시에 발생해도, 각 이벤트를 각각의 스레드에서 처리함다른 이벤트에 영향을 미치지 않음입출력 장치는 자신의 작업이 완료되면, 인터럽트 신호를 발생시켜 CPU에 작업을 요청함 2. 종류동기적 인터럽트 (사용자 인터럽트)실행중인 명령어로 인해 발생 종류프로그램상의 문제 때문에 발생 (Divide By Zero)프로세스를 의도적으로 중단하기 위해 발생주변장치의 조작에 의해 발생 비동기적 인터럽트하드웨어적인 오류로 인해 발생하는 인터럽트입출력 장치에 의해 트리거됨 3. 인터럽트..

OS 2024.12.12

[쉽게 배우는 운영체제] 4-1. CPU 스케줄링

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 스케줄링 단계고수준 스케줄링시스템 내의 전체 작업 수 조절동시에 실행 가능한 프로세스의 총 개수를 제한어떤 프로세스를 실행 대기열에 추가할지 결정 중간 수준 스케줄링시스템의 활성 프로세스 수를 조절함스왑, 프로세스 상태 전환 의 방법 사용메모리 자원 관리 및 시스템 부하 조절 저수준 스케줄링준비 상태에 있는 프로세스 중에서 어떤 것을 실행할지 결정스케줄링 알고리즘 사용CPU 자원 할당 최적화프로세스 상태 관리프로세스의 상태 간의 전환을 관리 2. 스케줄링 종류선점형 스케줄링OS가 실행중인 프로세스의 CPU를 강제로 빼앗을 수 있는 방식대부분의 저수준 스케줄러가 채택함 인터럽트CPU가 OS로부터 인터럽트를 받으면, 현재 실행 중인 작업을..

OS 2024.12.12

[쉽게 배우는 운영체제] 3-2. 프로세스와 스레드: 스레드

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 스레드프로세스 내에서 실행되는 작업 단위같은 프로세스 내에서 메모리와 자원을 공유 (Light Weight Process)서로 간에 직접적으로 데이터를 주고받을 수 있음데이터를 공유하므로 메모리를 효율적으로 사용할 수 있음 2. 멀티 태스킹CPU 할당 시간을 slicing하여 배분하는 기법 (시분할 시스템)운영체제가 여러 작업을 동시에 처리하는 것처럼 보이게 하는 기법 3. 멀티 스레딩단일 프로세스 내에서 여러 개의 스레드를 생성하여 병렬 처리하는 방식 모델커널 스레드커널이 멀티스레드를 지원하는 방식한 스레드가 블록되어도 다른 스레드는 계속 실행 가능 사용자 스레드사용자 공간에서 구현된 스레드운영체제가 멀티스레드를 지원하지 않을 때 사..

OS 2024.12.12

[쉽게 배우는 운영체제] 3-1. 프로세스와 스레드: 프로세스

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 개요프로그램 vs 프로세스프로그램어떤 데이터를 사용하여 어떤 작업을 할지 절차를 적어놓은 것저장장치에 저장되어 있는 정적인 상태 프로세스작업이 진행되고 있는 프로그램메모리에 올라온 동적인 상태 프로세스로의 전환프로그램을 메모리에 로드PCB 생성프로세스를 관리하기 위한 핵심 데이터 구조PID, Process state, Process Number, Program Counter, Register, Memory limitsFDT (오픈된 파일을 식별하기 위한 File Descriptor 정보 테이블)커널은 시스템 전체에서 오픈된 파일을 System open-file table로 관리함커널은 Active vnode table로 파일 시스템의 ..

OS 2024.12.11