3학년/운영체제 10

Chapter4-5

가상 메모리 할당 쓰레싱 가상 메모리를 사용함에 따라 실제 접근을 하기 위해서는 실제 메모리 상에 올라와 있는 것이 좋다. 페이지 부제가 계속적으로 발생 하면 성능이 떨어진다. 이렇게 되면 페이지 교체에만 자원을 많이 소모하게 되는데 이런 상황을 쓰래싱이라 한다. 쓰래싱을 줄이는 법 멀티 프로그래밍을 줄이는 것 실행중인 프로세스를 인의적으로 빼는 것 할당된 페이지를 늘리거나 페이지 프로그램을 줄이는 것 구역성(Locality) 한글 프로그램을 쓸 때 에디팅을 하다 여러가지 작업을 할 때 해당 코드가 한 페이지에 들어가지 않는다고 가정을 한다. 그렇다면 다른 작업을 함께 묶어서 다른 페이지도 함께 올린다. 페이지 하나가 접근 되는 순간 함께 있는 페이지도 함께 메모리에 올리는 것 그 집합들을 작업 세트(W..

Chapter4-4

가상 메모리 관리(페이지 교체 알고리즘) 페이지 교체 알고리즘 - 해당 페이지를 빼고 다른 패이지를 넣기 위한 방법 - 메모리에 모든 페이지를 다 올리지 못하기 때문에 사용 - 프로세스당 할당된 페이지 수가 정해져 있는 상황 알고리즘 종류 - FIFO - Optimal(최적) - LRU - 2차기회 - LFU FIFO ( First - In - First - Out ) - 8 ->8,1 -> 812 -> 312 *** - 먼저 메모리를 차지하고 있는 페이지를 내보내고 해당 자리에 다음에 들어오는 페이지를 할당한다. - Page Fault (페이지 부재) 할당된 페이지 안에 접근할 페이지가 없는 경우 - FIFO의 모순 할당된 페이지 수가 많아지면 PageFault(페이지부재)가 많이 일어나지 않는 것처럼..

Chapter4-3

가상 메모리 관리(Segmentation) Segmentation - 고정으로 자르는 페이지의 개념을 동적인 상태로 변경 - 메모리에 올라갈 내용을 봐서 자른다. 세그먼트 - 논리적 단위가 되는 프로그램 모듈이나 자료구조 - 크기가 가변적 - 즉, 세그먼트(페이지)를 나누는 크기가 동적으로 바뀐다. 직접 사상 - 가상 주소 V = ( s, d ) -> CPU에서 만듦 - s = segment번호 - d = offset - 메모리에는 연속으로 올라가야 함 - 페이지 테이블과 마찬가지로 세그먼트 테이블이 있음 - 존재 비트(Resident bit) 메모리에 올라가 있는지를 표시 가변 크기이기 때문에 조금 많다 0이면 메모리에 없음, 1이면 존재 a = 보조 기억장치 주소 l = 세그먼트 길이(offset의 ..

Chapter4-2

가상 메모리 관리(Paging) Page Mapping - 일정한 크기로 프로세스를 분할 - 크기를 고정 - 메인 메모리와 전체 프로세스를 동일한 크기로 분할 - Offset - (x, y) 좌표로 페이지위치를 찾는 것 n (page, offset) n 2단계 주소체계를 만들기 위함 n 메인 메모리에 올릴 때 page번호는 변할 수 있지만 offset번호는 변하지 않는다. - Page table n Page의 번호가 메인 메모리에 올리면 번호가 바뀌기 때문에 테이블에 적어 둔다. n 프로세스 당 1개 - page번호는 모든 프로세스가 동일함, 0번부터 시작 함 n 그때 그때 만들어 준다. (이유 : 프로세스당 매칭 되는 메인 메모리의 주소가 겹치면 안됨) n 페이지 테이블의 값이 메인 메모리에 올라와 있..

Chapter4-1

가상 메모리 관리 Overlay기법과 같은 개념 - 어쨌든 프로세스 전체를 메모리상에 올리지 못하는 경우가 발생하기 때문에 사용되는 개념 프로세스의 일부만 메모리에 올리는게 중요 - 프로세스를 사용할 때 전체를 가상 메모리에 올린다. - 그 중에 실행되고 있는 부분만 메인 메모리에 올린다. - 하드디스크를 사용 - 실제 메인 메모리 보다 커도 프로세스를 사용할 수 있도록 해준다. - Round-Robin과 같은 방법 동적 바인딩 - 실행중인 프로세스가 참조하는 주소 - 주 기억장치에서 이용하는 주소는 실제주소 - 프로세스의 일부만 메인 메모리에 올리는 것 Block Mapping - 데이터 집합(데이터 묶음)을 한꺼번에 메인 메모리에 올리는 것 - 페이지(고정) – offset : ( p , d ) - ..

Chapter3

기억장치 관리 주 기억 장치 - 프로그램과 데이터는 주 기억장치에 올라와 있어야 한다. - 용량이 제한되어 있음 - 실 기억장치 - 가상 기억장치 주소 바인딩 - 정의 n 논리 주소 : 컴파일을 할 때만 사용하는 주소 (기준을 0으로 해서 한다.) n 물리 주소 : 컴파일을 완료 한 후에 운영체제로부터 받은 메모리 주소에 직접 올라오는 주소 n 위의 논리 주소 -> 물리 주소로 변환되는 것 - 컴파일 시간(Compile Time) 바인딩 n 컴파일 할 때 물리주소가 결정된다 n 실행 시 위치(주소)가 바뀌면 다시 컴파일 해야 한다. - 적재 시간(Load Time) 바인딩 n 로딩 할 때 물리 주소가 결정된다. n 논리 주소로 컴파일을 할 때 결정 됨 - 실행 시간(Execution Time) 바인딩 n..

Chapter2-3

프로세스와 스레드 관리 3 스레드 - 다중 스레드 n 각각 독립적으로 실행할 수 있음 n 실행 순서는 시그널이나 동기화 방법을 통해서 제어 n Ex) 한글(hwp)프로세스 사용 중에 맞춤법 검사를 해주는 것(스레드) (프로세스 스레드 그림) 단일 프로세스, 단일 스레드 (좌), 프로세스 하나에 다중 스레드(우) 프로세스당 항목, 스레드당 항목 - 공통 n 코드, 힙, 정적 - 스레드 n 레지스터와 스택은 스레드 당 하나씩 존재 n 프로그램 카운터 n 프로세스 안에 하나의 코드를 가지고 여러 스택과 레지스터를 활용해서 프로그램 카운터가 각각 위치를 가리킨다. 그렇게 되면 메모리 사용량이 줄어든다. - 각각 사용해야 하는 것 n 프로그램 카운터 다중 스레딩 - 다수의 스레드를 이용하여 하나의 프로세스를 처리..

Chapter2-2

프로세스와 스레드 관리 2 프로세스 생성 - fork( )명령어 n fork명령어를 실행시키면 프로세스가 하나 더 생긴다. n 이렇게 생긴 프로세스는 같은 내용이지만 PID가 서로 다르고 독립된 프로세스가 생긴다. n fork명령어 전 까지는 앞에 있던 내용과 같지만, 그 뒤로는 독립된 프로세스가 된다. n pid = fork ( ) 명령어를 실행시키면 0값은 자식 프로세스가 된다. 부모 프로세스는 0보다 큰 값을 가지게 된다. 프로세스 스케줄링 - CPU 스케줄링 : 어떤 프로세스를 먼저 실행 시킬지 스케줄링 - 프로세스 스케줄링 : CPU에게 서비스 받을 프로세스 스케줄링 스케줄링 목적 - 공정해야 함 n 어떤 프로세스에만 치우치지 안아 야함 - 응답 시간 최소화 n 응답 시간이 길면 프로세스를 종료..

Chapter 2-1

프로세스와 스레드 관리 1 프로세스관리의 주요 목적 - CPU자원 관리 - CPU스케줄링 (=프로세스 스케줄링) 중앙처리장치 스케줄링 (CPU Scheduling) - 정의 : 준비 완료된 상태에 있는 프로세스를 CPU에 할당 시키는 정책 - 목적 : CPU처리 효율을 위함 프로세스란? - 실행 중인 프로그램 (=프로세스) - PCB (Process Control Block) n 프로세스를 실행시킬 때 필요한 정보를 모아둔 집합체 n 주로 RAM(메인 메모리)에 저장시킴 n 프로그램 카운터를 가지고 있음 (지금 현제 실행중인 프로그램의 위치 = 포인터) u PC라고 함 u Main( )함수를 가리킴 - 능동적인 개체로, 순차적으로 수행하는 프로그램 - 프로세스와 프로그램의 차이 n 프로그램 = 설치된 프..

Chapter1

운영체제 개요2018.03.08 운영체제 - 하드웨어와 소프트웨어 사이에 있는 것. - 하드웨어와 컴퓨터 사용자를 이어주는 매개체 역할 - 시스템 소프트웨어라고 함 목적 - 컴퓨터 시스템 관리 - 효율적인 관리 n 효율적 : 공정 해야 함 운영체제 관점 - 컴퓨터 관점 : 자원 할당자라고 함 n 여러 개의 프로그램이 각각 원하는 자원이 정해져 있는 것을 적절하게 할당해 주고 다시 돌려받는 역할 - 사용자 관점 : 입출력 장치 통제 컴퓨터 시스템의 구성 - 하드웨어 -> 운영체제 -> 소프트웨어 -> 사용자 운영체제 유형 1. 일괄 처리 시스템(Batch Processing System) A. Batch : 일괄 등록(처리) B. 한번에 다 같이 처리하는 의미 C. 비슷한 것을 묶어서 같이 처리 함 D. ..