1. 프레임 할당 우선 프레임은 메모리상 페이지는 가상 메모리상의 블락 단위이다. 운영체제는 프로세스에게 알맞는 프레임 개수를 할당해야한다. 너무 많이 할당하면 다른 프로세스가 능률이 떨어질 것이며 적게 할당하면 페이지 부재로 인해 CPU 능률이 떨어질 것이다. 그러면 최소로 할당해야 하는 프레임의 수는 얼마인가? 페이지 부재로 인해 가장 문제가 되는 것은 명령어를 다시 실행 시켜야 하는 것이다. 따라서 프로세스당 필요한 최소 프레임 수는 명령어 집합 아키텍처에 결정된다. 이론적으로 명령당 참조 회수가 한번이면 프레임이 하나만 있으면 되지만 간접 참조 때문에 그렇지 않다. 이러한 이유로 최대 프레임 수는 간접 참조의 반복과 관련있는 가용 물리 메모리에 의해 결정된다. 2. 할당 알고리즘 1. 균등 할당 ..
1. 배경 메모리에 프로세스의 프레임이 모드 올라가지 못하여도 프로세스가 동작할 수 있도록 해주는 기술이다. 한 프로세스의 가상 주소 공간은 그 프로세스가 메모리에 저장되는 논리적인 모습을 말한다. 그러나 해당 프로세스의 프레임이 모두 메모리에 올라가 있는 것이 아니라 몇 개만 올라가져있고 가상 메모리 상의 프레임과 맵핑되어 있다.가상 메모리 내부에서는 스택이 아래로 쌓이며 힙이 위쪽으로 확장한다. 이때 이 공백을 포함하는 가상 주소 공간을 Sparse(성간) 주소 공간이라고 한다. 해당 공간에는 공유 라이브러리도 들어올 수 있다. 2. Demand Paging(요구 페이징) 요구 페이징이란 초기에 필요한 것들만 메모리에 적재하구 이후 필요할때 요구하여 적재한다. 가상 메모리는 대개 요구 페이징 방식으로..
1. 기본 하드웨어 1. CPU가 직접 접근할 수 있는 유일한 범용 저장장치는 주 메모리와 프로세서 자체에 내장되어 있는 레지스터이다. 2. CPU에 내장되어 있는 레지스터들은 일반적으로 CPU clock의 1cycle내에 접근이 가능하다. 3. CPU와 주 메모리 사이의 접근 속도를 높이기 위해 캐시를 이용했다. 4. 시스템이 올바르게 동작하는것을 보호하기 위해 각각의 프로세스는 독립된 메모리 공간을 가지도록 한다. 5. 프로세스의 독립된 공간은 base reg와 limit reg로 구별한다. 5. 특정 프로세스가 다른 프로세스나 운영체제의 메모리 영역으로 접근할려고 할 시 트랩을 발생시켜 막는다. 6. base reg와 limit reg는 운영체제(커널모드)에 의해서만 로드된다. 2. 주소의 할당 1..
1. System Model 교착 상태란 프로세스에게 한정된 자원이 분배됬을 때, 프로세스들이 자원의 부족으로 더이상 실행을 할 수 없어 끝낼 수 없으며, 자원이 프로세스에게 묶여 다른 작업을 시작하는 것도 불가능한 상태를 말한다. 한정된 자원에 대해 정상적으로 시스템이 운영되기 위해 프로세스는 요청, 사용, 방출 순서로만 자원을 사용할 수 있다. 2. Necessary Conditions 교착상태는 다음 네 가지 조건이 동시에 성립될 때 발생한다. ▪ mutual exclustion(상호 배제) : 최소한 하나의 자원이 비공유 모드로 점유되어야 한다. 비공유 모드에서는 한 번에 한 프로세스만이 그 자원을 사용할 수 있다. ▪ hold-and wait(점유하며 대기) : 프로세스는 최소한 하나의 자원을 ..
1. 개요 Operating System Concepts 9th Edition(8th==공룡책)의 7장 프로그래밍 문제로 은행원 알고리즘을 다중스레드 프로그램을 작성한다. 이번 과제에서는 은행원 알고리즘 중 자원 요청 알고리즘(Resource-Request Algorithm)으로 구현한다. 2. 개념 및 용어정리 1. 은행원 알고리즘 : 프로세스가 자원들을 요청하면 시스템은 그것을 들어주었을 때 시스템이 계속 안전 상태에 머무르게 되는지 판단하고 안전하게 된다면 그 요청을 들어준다. 2. 자원 요청 알고리즘 : 은행원 알고리즘을 구현하는 방식 중 하나로 프로세스가 자원을 요청하면 우선적으로 남아있는 자원보다 같거나 작게 요청했는지 확인한 후 가상으로 자원을 할당해 준다. 이후 남은 자원을 가지고 시스템의..
1. 개요 각각의 철학자가 생각을 하다가 배가 고프면 식사를 합니다. 식사를 하기위해서는 한 쌍은 젓가락(포크)가 필요합니다. 만약 철학자 모두가 오른쪽의 젓가락을 든다고 한다면 모두 하나의 젓가락만 가지고 있기 때문에 식사를 하지 못합니다. 2. 해결방안 첫 번째 해결 방안은 젓가락의 수가 철학자의 수보다 많으면 됩니다. 두 번째 해결 방안은 누군가 한명이 반대 젓가락을 먼저 들면 됩니다. 세 번째 해결 방안은 철학자가 2개의 젓가락을 모두 집을 수 있을 때만 집게 합니다. 3. Source Code 두 번째 해결 방안인 누군가 한명이 반대 젓가락을 먼저 집게 하는 방식을 조금 변경하여 짝수 철학자와 홀수 철학자로 나누어 반대 방향 젓가락을 먼저 집게 하도록 구현하였습니다. C언어로 구현하였으며 mut..
1. 임계구역문제 • 진입 구역, 임계 구역, 퇴출 구역, 나머지 구역으로 구성된다. • 상호 배제 : 하나의 프로세스가 임계 구역으로 들어가면 나머지 프로세스는 못들어 간다. • 진행 : 동일 프로세스가 계속해서 임계 구역에 있을 수 없다. • 한정된 대기 : 임계 구역에 접속 요청을 하였으면 중간에 순서를 뺏기는 횟수를 제한해야한다. 2. 피터슨의 해결안 • 코드로 하여 Critical section에 접근할수 있는 프로세스를 정한다. 3. 동기화 하드웨어 • 소프트웨어 기반 API를 이용하여 보호한다. • test_and_set • compare_and_swap : value와 expected가 같으면 new_value로 변경한다. 4. Mutex • 하드웨어 기반 해결책은 사용하기 힘들어 동기화 ..
1. Contention Scope• 커널 수준 쓰레드는 운영체제에 의해 스케줄링 된다.• 유저 수준 쓰레드는 쓰레드 라이브러리에 의해 스케줄링 된다. • PCS : 같은 프로세스내에 존재하는 쓰레드 끼리 경쟁상태에 놓이게 된다. 다-대-다, 다-대-일 모델을 구현하는 시스템에서는 LWP상에서 스케줄한다. 즉 프로세스-경쟁-범위(PSC)이다. • SCS : 시스템에 존재하는 모든 쓰레드끼리 경쟁상태에 놓이게 된다. 2. 다중 처리기 스케줄링• Asymmetric multiprocessing : 하나의 master server 하는 처리기를 두어 다른 스케줄링 결정과 입출력 처리 그리고 다른 시스템의 활동을 처리하게 한다.• Sysmetric Multiprocessing : 각각의 프로세서가 독자적으로 스..
1. Scheduling• 어떻게 하면 일을 빠르게 처리 할수 있는가?• 어떻게 하면 공평하게 일을 처리 할수 있는가? • Short Term Scheduler에서 담당한다. 2. Preemptive Scheduler 1. 실행 상태 -> 대기 상태 2. 실행 상태 -> 준비 완료 상태 3. 대기 상태 -> 준비 완료 상태 4. 프로세스 종료할 때 위 상태에서 스케줄링이 발생을 하는데 1번과 4번의 경우 스케줄링의 측면에서 선택의 여지가 없다. 그러나 2번과 3번은 스케줄링을 할 여지가 있다. 그렇기 때문에 1번과 4번은 비선점형으로 진행하고 2번과 3번은 상황에 따라서 조정하면된다. 3. Dispatcher• 디스패처는 CPU의 제어를 단기 스케줄러가 선택한 프로세스에게 주는 모듈 • 문액을 교환하는 ..
1. 개요 • 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 스텍으로 구성된다. • 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 그리고 열린 파일이나 신호와 같은 운영체제 자원을 공유한다. • 각각의 스레드는 스텍, 레지스터 프로그램 카운터를 가진다. 2. 다중 스레드 프로그래밍 장점 • 응답성 : 하나의 쓰레드에서 응답을 처리하고 다른 스레드에서는 메인 코드를 처리하면 응답성이 증가한다. • 자원 공유 : 프로세스 끼리는 공유 메모리나 메시지 전달 기법을 사용해야하지만 같은 프로세스내 쓰레드는 자동적으로 프로세스의 자원을 공유한다. • 경제성 : 스레드는 자신이 속한 프로세스의 자원들을 공유하기 때문에 스레드를 생성하고 문맥을 교환..
- Total
- Today
- Yesterday
- 유전 알고리즘
- java
- Notification
- 유전
- 파일 입출력
- 인텐트
- java 파일 입출력
- 포켓몬 Go
- 포켓몬 고
- 알고리즘
- 아두이노
- c언어
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- android
- php
- 파일입출력
- counter
- 카운터
- LISTVIEW
- java url
- 자바 입출력
- 5582
- 안드로이드
- vim 설치
- vim
- 서버
- Res
- Java Decompiler
- Service
- jad
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |