목록CS/OS (26)
공부기록
OS 질문 프로세스의 개념 프로세스란? 프로세스의 구조 PCB? PCB의 역할? context switching? 프로세스 상태 9-state diagram 보류 상태가 무엇인지? 어떤 현상에 의해 보류 상태가 생기는지? 스와핑의 정의? 스와핑이 필요한 이유? 프로세스의 표현 프로세스 테이블 PCB 정의 역할 프로세스 이미지 정의 구조 프로세스 속성 프로세스 제어 수행모드와 사용이유 프로세스 생성과정 프로세스 교환이유 모드전환 과정 프로세스 교환 vs 모드 전환 프로세스 교환 과정 스케줄링의 개념 스케줄링? 스케줄러? 스케줄러의 목표? 처리기 스케줄러의 유형 처리기 스케줄러의 목적 스케줄링 기법이 중요한 이유? 처리기 스케줄러 유형과 설명 단기 스케줄러 호출 시점? 스케줄링 알고리즘 preemptive ..

메모리 관리를 위한 OS SW 가상 메모리를 위한 운영체제 정책에는 다음과 같은 것들이 있다. 반입 정책 배치 정책 교체 정책 반입정책 (Fetch Policy) 언제 페이지를 주기억장치로 들여올지 결정 요구페이징 (demand paging) 요구페이징에서 페이지가 주기억장치로 반입되는 시점은 페이지의 특정 부분이 참조될 때이다. 선페이징은 유효성이 입증되지 못함 배치정책 (Placement Policy) 배치정책은 블록이 주기억장치의 어디에 위치할 지를 결정 페이징을 사용하는 시스템의 경우 일반적으로 문제가 되지 않음 교체정책 (Replacement Policy) 새로운 페이지를 반입하기 위해 주기억장치의 어떤 페이지를 선택하여 교체할 지를 결정 어떤페이지를 선택할지 결정하는 알고리즘들이 존재 OPT,..

교착상태 발견 예방 전략 상당히 보수적인 방법 교착상태가 발생하지 않도록 하기 위해 자원 접근에 대한 제한과 프로세스의 수행 제한 발견 전략 좀 더 낙관적인 방법 자원 접근에 대한 제한이나 프로세스의 행위에 제한 없음 즉 자원 할당이 가능한 상황이면 항상 할당함 단 주기적으로 시스템에 환형 대기 조건이 발생했는지 검사하고 발생하면 해결 교착상태 발견 알고리즘 자원할당이 요구될 때마다 수행 vs 주기적인 수행 자원 할당이 요구될 때마다 매번 수행하면 빨리 교착 상태 발견 가능하고 알고리즘이 간단 처리 비용이 더 많이 들 수 도 있다. 알고리즘 할당 행렬 A, 가용 벡터 V, 요청 행렬 Q 사용 Qij는 프로세스 i에 의해 요청된 자원 j의 개수 교착상태가 아닌 프로세스들을 찾아 표시 (mark) 초기에는 ..

세그먼테이션 세그먼테이션은 프로그래머가 메모리를 다수의 주소공간들 (혹은 세그먼트 들) 의 조합으로 볼 수 있게 함 세그먼트들은 서로 크기가 다르고, 실제로 그 크기는 동적으로 결정 메모리 참조는 (세그먼트 번호, 오프셋)의 주소 형식 장점 점진적으로 커져가는 자료구조의 처리를 단순화 세그먼트의 크기를 OS가 재정의 할 수 있음 프로그램 전체에 대한 재연결, 재적재 없이, 세그먼트 각각을 독립적으로 변경하거나 다시 컴파일 할 수 있게함 여러 개의 세그먼트를 사용함으로써 가능하다. 프로세스들이 세그먼트를 공유할 수 있도록 함 세그먼트를 보호할 수 있게 함 세그먼트 테이블이 필요 전형적으로 각 프로세스는 자기 고유의 세그먼트 테이블과 연계 세그먼트 중 일부만 주 메모리에 적재되기 때문에, 해당 세그먼트가 주..

가상 메모리 페이징 프로세스별 페이지 테이블이 필요 존재비트 P : 해당 페이지가 메모리에 적재되어 있는지 여부 적재 되어 있다면 그 항목은 그 페이지의 페이지 프레임 번호를 포함 적재되어 있지 않다면 보조 메모리에 있고, 페이지 인덱스를 참조시 page fault가 일어나 페이지를 반입함 수정비트 M : 해당 페이지가 메모리에 적재된 후 그 내용이 수정되었는지 여부 수정되지 않았다면 page out할 때 이 페이지를 DISK에 쓰는 연산을 할 필요가 없어진다. Other Control Bits 페이지 수준에서 보호와 공유를 다루기 위한 비트들 페이지 테이블 구조 메모리에서 한 워드를 읽을 때 마다 페이지 번호와 오프셋으로 구성된 가상 주로(혹은 논리주소)를 프레임 번호와 오프셋으로 구성된 물리주소로 변..
단순 페이징, 세그멘테이션의 특징 (vs 고정 분할 혹은 가변 분할) 프로세스의 모든 메모리 참조는 논리주소 이전과 다른 메모리 위치에 적재될 능력이 있다. 한 프로세스의 주소공간은 여러 블록(페이지, 세그멘트)로 분할 이 블록들은 연속되어 배치될 필요가 없다. 테이블을 통해 찾아가면 되니까 위의 두 특성 때문에 프로세스의 모든 페이지, 세그먼트가 주기억 장치에 적재되어 있을 필요가 없다. 즉 블록들을 필요에 따라 스와핑 할 수 있다. 다음에 수행할 명령을 포함한 블록과, 그 명령에 의해 참조될 데이터가 포함된 블록이 주 기억장치에 있다면, 프로세스의 진행이 가능하다. 프로세스의 블록이 반입되는 과정 OS는 초기에 수행될 코드와 참조될 데이터가 포함되는 몇개의 블록만 주기억장치로 반입 적재 집합 : 현재..

세그먼 테이션 사용자 프로그램은 세그먼 테이션 기법을 이용하여 나누어 질 수 있고 프로그램과 그에 관련된 데이터들이 여러 세그먼트로 나누어짐 세그먼트의 크기는 각각 다를 수 있다. 세그먼테이션의 논리 주소 = 세그먼테이션 번호 + 오프셋 동적 할당과의 차이는 세그먼테이션은 하나 이상의 파티션을 차지할 수 있고 연속적일 필요가 없다는 점 외부 단편화를 초래할 수 있다. 하지만 프로세스보다 작은 크기로 쪼개지기에 상대적으로 단편화가 적은 편 프로그래머가 세그먼트를 지정할 수 있다. 프로그래머, 컴파일러는 프로그램과 데이터를 다른 세그먼트로 할당 구조적인 프로그래밍을 위해 프로그램, 데이터는 더 세분화 된 여러 세그먼트로 나뉠 수 있다. 세그먼트 기법의 단점 프로그래머가 세그먼트의 최대 크기를 알고 있어야함 ..

페이징 고정 분할 기법과 가변 크기 분할 기법은 메모리를 효율적으로 이용하지 못함 페이징은 각 프로세스의 마지막 페이지에서만 내부 단편화가 일어난다. 페이징은 메모리 프레임에 연속적으로 저장되지 않아도 된다. 이 때문에 각 프로세스가 하나의 주소 레지스터가 아닌, 페이지 테이블을 유지한다. 페이지 테이블은 각 페이지들에 해당하는 프레임의 위치를 관리한다. 프로그램 안에서 각 논리주소는 페이지 번호 + 페이지 내의 오프셋 으로 구성 논리주소는 프로그램의 시작 위치로부터 상대적인 값으로, 처리기는 논리주소를 물리주소로 변환 논리 주소 (페이지번호 , 오프셋 ) -> 처리기 -> 물리주소 (프레임 번호, 오프셋)이 된다. OS는 현재 비어있고, 페이지에 할당 가능한 모든 프레임들의 목록을 관리