본문 바로가기

반응형

개인공부

(206)
Replacement Strategies Min Alogorithm (OPT algorithm) 최적의 솔루션이다. 미래를 알 수 있기때문에 가능하다. FIFO Algorithm LRU ( Least Recentyl used) Algorithm - 참조 시 마다 시간을 기록해야 함(Overhead) - 간소화된 정보 수집으로 해소 가능 LFU (Least Frequently Used) Algorithm - 참조마다 참조횟수를 기록 NUR ( Not used Recently) Algorithm -최근에 사용하지 않은 애들을 교체한다.
Virtual Memory Management Page fault frequency (발생 빈도) Page fault rate ( 발생률) Page fault rate를 최소화 할 수 있도록 전략들을 설계해야 함 - Context switch 및 kernel 개입을 최소화 - 시스템 성능 향상 특정 page를 메모리에 언제 적재할 것인가? Demand fetch (demand paging) - 프로세스가 참조하는 페이지들만 적재 - Page fault overhead Andticipatory fetch - 참조될 가능이 높은 page 예측 - 가까운 미래에 참조될 가능성이 높은 page를 미리 적재 - 예측 성공 시, page fault overhead가 없음
Virtual Storage Paging System Page - 프로그램의 분활된 block Page fram - 메모리의 분할 영역 - Page와 같은 크기로 분할 Pasing System 특징 - 논리적 분할이 아님 (크기에 따른 분할) - segmentation 대비 복잡하다 No external fragmentation - Internal fragmentation 발생 가능 페이지 폴트도 콘텍트 스위칭을 발생시키고 오버헤드가 크다. -> Context switching 발생 (I/O) -> Overhead 문제점 - 메모리 접근 횟수가 2배 커널갔다가 메인메모리간다 - PMT를 위한 메모리 공간 필요 해결방안 - Associative mapping(TLB) - PMT를 위한 전용 기억장치(공간) 사용 - Low overhead 지만 비싸다... H..
Vitrual Storage (Memory) - Non-continuouse allcation - 사용자 프로그램을 여러 개의 block으로 분할 - 실행 시, 필요한 block들만 메모리에 적재 기법들 - Paigin system - Segmentation sysetm - Hybrid pagin/ segmentation system Address Mapping virtual address(가상주소) - 논리적인 주소 - 연속된 메모리 할당을 가정한 주소 real address(실제주소) - 실제 메모리에 적재된 주소 Block Mapping 사용자 프로그램을 block 단위로 분할/관리 - 각 block에 대한 address mapping 정보 유지 Block map table (BMT) - Address Mapping 정보 관리 - 커널 공간에..
메모리 메모리(기억장치)의 종류 HW가 관리 : 레지스터, 캐시 캐시 : SW가 관리 메모리(기억장치) 계층구조 Block - 보조기억장치와 주기억장치 사이의 데이터 전송 단위 Word - 주기억장치와 레지스터 사이의 데이터 전송 단위 Address Binding - 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑(mapping)하는 작업 Binding 시점에 따른 구분 - Compile time binding : 컴파일 할때 - Load time binding : 프로그램을 메모리에 올릴 때 - Run time binding : 실행중에 address를 할당할 때 컴파일이란 소스코드를 오브젝트 모듈로 변환 하는것을 말한다. 린커는 오브젝트 모듈과 라이브러리같은것을 묶어서 링커로 만들어준다. loadMo..
교착상태 Deadlock Resolution Blocked/Asleep state - 프로세스가 특정 이벤트를 기다리는 상태 - 프로세스가 필요한 자원을 기다리는 상태 Deadlock state - 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우 - 프로세스가 deadlock 상태에 있음 - 시스템 내에 deadlock에 빠진 프로세스가 있는 경우 - 시스템이 deadlock 상태에 있음 자원의 분류 Hadware resources vs Software resources 선점 가능 여부에 따른 분류 Preemptible resources - 선점 당한 후, 돌아와도 문제가 발생하지 않는 자원 - Processor, memory 등 Non-preemptible resources - 선점 당하면, 이후 진행에 문제가 발생하는 자원 - disk, ..
Eventcount / Sequencer 은행의 번호표와 비슷한 개념 Sequencer - 정수형 변수 - 생성시 0으로 초기화, 감소하지 않음 - 발생 사건들의 순서 유지 - ticket() 연산으로만 접근 가능 ticket(s) - 현재까지 ticket() 연산이 호출 된 횟수를 반환 - Indivisible operation Eventcount - 정수형 변수 - 생성시 0으로 초기화, 감소하지 않음 - 특정 사건의 발생 횟수를 기록 - read(E), advance(E), await(E,v) 연산으로만 접근 가능 read(E) - 현재 Eventcount 값 반환 advance (E) - E
Semaphore P : Probern(검사) V : Verhogen(증가) 임의의 s변수 하나에 ready queue 하나가 할당 된다. Binary semaphore S가 0과 1 두 종류만 값만 갖는 경우 상호배제나 프로세스 동기화의 목적으로 사용 Counting semaphore S가 0이상의 정수값을 가질 수 있는 경우 Producer-Consumer 문제 등을 해결하기 위해 사용 초기화 연산 S 변수에 초기값을 부여하는 연산 스핀락과 달리 Queue 로 들어간다. Semaphore로 해결 가능한 동기화 문제들 - 상호배제 문제 - 프로세스 동기화 문제 - 생산자-소비자 문제 - Reader-Writer 문제 세마포어를 이용해서 실행 순서를 맞출 수 있다.

반응형