공부/운영체제(9)
-
페이지 교체 알고리즘
페이지 교체 알고리즘 모든 페이지 프레임이 사용되고 있을 때 새로 적재되어야 할 페이지를 위해 적절한 교체 대상을 결정 교체 대상 선택 최적화의 원칙 앞으로 가장 오랬동안 사용되지 않을 페이지를 교체 대상으로 선택 이론적으로 최적이나 미래를 예측할 수 없어 실현 불가능, 실시간으로 알수 없음 선택을 위한 기본 정책 대체로 좋은 결론은 내리면서 선택을 위한 시간 및 공간 오버헤드가 적은 방법 교체 제외 페이지 페이징을 위한 커널 코드 영역 보조기억장치 드라이버 영역 시간을 맞춰 동작해야 하는 코드 영역 입출력장치를 위한 데이터 버퍼 영역 페이지 교체 알고리즘 FIFO 페이지 교체 First-in First-out -메모리 내에 가장 오래 있었던 페이지를 선택하여 교체 FIFO 큐 이용 구현 단점 가장 많이..
2023.05.25 -
가상메모리
가상 메모리의 개념 연속 메모리 할당 –메모리 크기보다 더 큰 기억공간이 필요한 프로세스는 실행 불가 가상메모리 – 메모리 크기보다 더큰 기억공간이 필요한 프로세스도 실행할 수 있게 하는 방법 실행 중인 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리 현재 필요한 일부만 메모리에 적재 사상(mapping) 프로세스 실행을 위해 가상주소를 실주소로 변환하는 과정 동적 주소변환(DAT)프로세스가 실행되는 동안 mapping(사상) 인위적 연속성 가상주소 공간에서 연속적인 주소가 실주소 공간에서고 연속적일 필요는 없음 블록단위 주소 변환 주소변환 사상표 동적 주소변환을 위한 정보를 가진표 주소변환이 바이트나 워드 단위로 이뤄지면 변환에 필요한 정보량이 너무 많이 비효율적임 블록사상시스템 블록 ..
2023.05.25 -
메모리 관리
프로세스와 메모리 프로세스 동작 프로그램 카운터(pc)를 참조하여 수행될 명령을 메모리에서 읽어 cpu로 수행하는 것 메모리 관리 호출- 언제 새로운 프로세스를 메모리에 둘것인가? 배치- 다음에 실행된 프로세스를 메모리 내의 어느 곳에 둘 것인가? 교체- 메모리가 꽉 찬상태에서 새로운 프로세스를 메모리에 적재해야 한다면 어떤 프로세스를 제거 할 것인가 그 외 고정/동적 분할, 고정/유동 적재영역 등 단일 프로그래밍 환경 하나의 프로세스만 메모리를 전용으로 사용하는 것 프로세스는 하나의 연속된 블록으로 메모리에 할당 문제점 메모리의 용량을 초과하는 프로세스는 실행 못함 메모리 낭비심함-지속적으로 사용되지 않는 프로세스도 메모리에 게속 적재 주변장치 등 자원의 낭비 심함 다중 프로그래밍 환경 여러개의 프로세..
2023.05.24 -
교착상태
교착상태(deadlock) 여러 개의 프로세스가 서로 상대방의 작업이 끝나기만 기다리고 있어 어느쪽고 영원히 진행하지 못하는 상태 개요 프로세스 자원 사용 절차 요구 -> 사용 -> 해제 요구과정에서 가용한 자원이 없으면 자원 획득까지 대기 교착상태와 기아상태의 차이 교착상태 영원히 대기가 중인 상태 기아상태 언젠가는 대기가 풀릴 수 있는 상태 특성 필요조건 네 가지 조건이 동시에 만족될 때 교착상태 발생가능 상호배제(mutual exclusion) 프로세스가 자원에 대한 배타적인 통제권을 요구 적어도 하나 이상의 자원은 여러 프로세스에 의해 동시에 사용될 수 없음 다른 프로세스가 점유한 자원이 필요하면 반드시 대기 점유대기(hold and wait) 프로세스가 이미 한 자원을 할당 받아 점유하고 있는 ..
2023.05.08 -
운영체제-5
생산자-소비자 문제 두 협력 프로세스 사이에 버퍼를 두고 생산자와 소비자의 상황을 다루는 문제 생산자 : 데이터를 넣는 프로세스 소비자 : 데이터를 꺼내는 프로세스 버퍼 : 데이터를 임시로 저장 하는 곳 버퍼에 여러 프로세스가 동시에 접근할 수 없다 버퍼에 데이터를 넣는 동안 데이터를 꺼내지 못함 데이터를 꺼내는 동안 데이터를 넣지 못함 *상호배제 필요 버퍼의 크기가 유한하다. 버퍼가 풀인 경우 생산자는 대기해야한다 버퍼가 널인 경우 소비자는 대기해야한다. *동기화 필요 세마포어를 이용한 해결 생산자의코드 while(true){ 데이터 생산 p(empty); p(mutex); 데이터 insert v(mutex); p(full); //버퍼에 데이터 증가 } 소비자의코드 while(true){ p(full)..
2023.04.28 -
운영체제-4
병행 프로세스 개요 병행성(concurrency) 여러개의 프로세스 또는 쓰레드가 동시 수행되는 시스템 병행 프로세스 동시에 수행되는 여러개의 프로세스 또는 쓰레드 1개의 cpu: 인터리빙 형식 여러개의 cpu: 병렬처리 형식 멀티프로세서 시스템에서의 메모리 구조에 따라 강결합 시스템(공유 메모리 구조), 약결합 시스템 프로세스간의 관계 독립 프로세스 수행중인 다른 프로세스에 영향을 주지도 받지도 않음 데이터 및 상태를 다른 프로세스와 공유하지 않음 프로세스의 실행 결정적: 실행 결과는 입력에 의해서만 결정 재생가능 : 같은 입력에 대해 항상 동일한 실행 결과 협력 프로세스 수행중인 다른 프로세스와 영향을 주고 받음 데이터 및 상태를 다른 프로세스와 공유 프로세스 의 실행 비결정적: 실행 결과는 실행 순..
2023.04.05