일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스파르타코딩클럽
- 냅색알고리즘
- 운영체제
- 백준평범한배낭
- 이것이자바다9장
- 백준괄호
- 윤곽선검출
- BOJ
- 확인문제
- 코딩테스트실력진단
- 딥러닝
- 백준
- 백준스택
- 이것이자바다확인문제
- 합성곱연산
- 웹개발기초
- 백준9012
- 2019카카오코테
- 백준온라인저지
- BOJ1655
- 백준가운데를말해요
- 백준10828
- java
- 카카오코테
- 코테
- 가운데를말해요
- 이것이자바다
- 코드트리
- KT포트포워딩
- 컴퓨터비전
- Today
- Total
목록📀 운영체제 (23)
코딩하는 락커

10.4 페이지 교체 메모리 과할당over allocating 다중 프로그래밍 정도를 올렸을 때 발생할 수 있는 문제 ex) 40개의 프레임과 10개의 페이지 중 5개만을 사용하는 6개의 프로세스가 있다고 가정 이 경우 10개의 프레임은 남겨 놓고도 높은 CPU 활용률과 처리율을 얻을 수 있음 그러나 특정 데이터 조합에 대해 이 프로세스들이 10페이지 모두를 사용해야 하는 상황이 발생할 수 있음 또한 40프레임만이 존재하는 상황에서 60프레임을 필요로 하게 됨 메모리 과할당의 발생 순서(위 그림 참조) 프로세스가 실행하는 동안 페이지 폴트 발생 운영체제가 필요로 하는 페이지가 보조저장장치에 저장된 위치를 알아냄 그러나 가용한 프레임 목록에 가용한 프레임이 없음을 발견함 (즉, 모든 메모리가 사용중임) 이..

10. 1 가상 메모리 배경 가상 메모리virtual memory는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법을 말함 가상 메모리의 장점 사용자 프로그램이 물리 메모리보다 커져도 됨 가상 메모리는 물리 메모리로부터 프로그래머 관점의 논리 메모리를 분리해 메인 메모리를 균일한 크기의 저장 공간으로 구성된 엄청나게 큰 배열로 추상화 해 줌 파일과 라이브러리의 공유를 쉽게 해주고 공유 메모리 구현을 가능하게 함 한 프로세스의 가상 주소 공간은 그 프로세스가 메모리에 저장되는 논리적인(가상적인) 모습을 말함 위 그림과 같이 특정 논리 주소는 0번지에서 시작하여 연속적인 공간을 차지함 또한 힙은 동적 메모리를 사용함에 따라 주소 공간상에서 위쪽으로 확장되고, 스택은 함수 호출을 거..

9.3 페이징 지금까지 논의된 메모리 관리는 프로세스의 물리 주소 공간이 연속적이어야 했음 페이징 프로세스의 물리 주소 공간이 연속적이지 않아도 되는 메모리 관리 기법 연속 메모리 할당의 문제를 해결 외부 단편화 문제 해결 단편화된 된 메모리의 압축의 필요성 문제 해결 기본 방법 물리 메모리는 프레임frame이라고 불리는 같은 크기 블록으로 나누어짐 논리 메모리는 페이지page라고 불리는 같은 크기 블록으로 나누어짐 이를 통해 논리 주소 공간은 물리 주소 공간으로부터 완전히 분리되었고, 이 때문에 물리 메모리의 크기가 2^64 바이트보다 적게 장착된 시스템에서도 프로세스는 64비트로 이루어진 논리 주소 공간을 사용할 수 있음 논리 주소 공간은 페이지 번호 p과 페이지 오프셋 d 두 개의 부분으로 분리됨 ..

9.1 배경 메인 메모리는 각각의 주소가 할당된 일련의 바이트들로 구성됨 CPU는 Program Counter(PC)가 지시하는대로 메모리로부터 다음 수행할 명령어를 가져옴 명령어는 필요한 경우 추가적인 데이터를 더 가져올 수 있으며 반대로 데이터를 메모리로 내보낼 수 도 있음 기본 하드웨어Basic Hardware 각각의 프로세스가 독립된 공간을 갖도록 보장해야 함 개별적인 메모리 공간을 분리하기 위해서는 특정 프로세스만 접근할 수 있는 합법적인 주소 영역을 설정하고 프로세스가 합법 기준(base)과 상한(limit)이라고 불리는 두 개의 레지스터들을 사용하여 이러한 보호 기법을 제공함 기준base 레지스터: 가장 작은 합법적인 물리 메모리 주소값을 저장하고 있음 상한limit 레지스터: 주어진 영역의..

8.6 교착 상태 회피Deadlock Avoidance 데드락 예방 알고리즘은 요청 방법에 제한을 두어 교착 상태를 예방함 이 제한은 데드락이 발생하기 위한 필요 조건 중 적어도 한 가지는 성립되지 않도록 보장함 그러나 이런 방식으로 데드락을 예방할 때 장치의 이용률이 저하되고 시스템 총처리율throughput이 감소한다는 문제가 발생 교착 상태 회피 자원이 어떻게 요청될지에 대한 추가 정보를 제공하도록 요구하는 것 각 스레드의 요청과 방출에 대한 완전한 순서를 파악하고 있다면, 각 요청에 대해서 가능한 미래의 교착 상태를 피하고자 스레드가 대기해야 하는지에 대한 여부를 결정할 수 있음 가장 단순하고 유용한 모델은 각 스레드가 자신이 필요로 하는 각 유형의 자원마다 최대 수를 선언하도록 요구하는 것 안전..

8.1 시스템 모델System Model 데드락 대기 중인 스레드들이 그들이 요청한 자원들이 다른 스레드들에 의해서 점유되어 있고, 그들도 다 대기 상태에 있기 때문에 결코 다시는 그 상태를 변경할 수 없는 상황 시스템은 경쟁하는 스레드들 상이에 분배되어야 할 유한한 수의 자원들로 구성됨 이들 자원은 다수의 유형으로 분할되며 이들 각각은 동등한 다수의 인스턴스들로 구성됨 ex) CPU 주기, 파일, 입/출력 장치 등 만일 한 스레드가 어떤 자원 유형의 한 인스턴스를 요청하면, 동일 유형 자원의 임의의 인스턴스를 할당함으로써 요청이 충족됨 스레드는 자원을 사용하기 전에 반드시 요청해야 함 스레드는 자원을 사용한 후에는 반드시 방출해야 함 스레드는 지정된 테스크를 수행하기 위해 필요한 만큼의 자원을 요청할 ..

식사하는 철학자들 문제 식사하는 철학자 문제 가정 5명의 철학자가 5개의 의자에 각각 앉아 있음 테이블 중앙에는 밥이 있음 테이블에는 다섯개의 젓가락이 놓여 있음 철학자들은 배가 고파지면 자신에게 가장 가까이 있는 두 개의 젓가락(왼쪽 젓가락과 오른쪽 젓가락)을 집으려고 시도함 철학자들은 한번에 한 젓가락만 집을 수 있음 철학자들은 이미 옆 사람의 손에 들어간 젓가락을 집을 수 없음 동시에 두 개의 젓가락을 집으면 젓가락을 놓지 않고 식사를 함 식사를 마치면 두 개의 젓가락을 모두 놓고 다시 생각을 시작함 식사하는 철학자 문제는 교착 상태Deadlock과 기아Starvation을 발생시키지 않고 여러 스레드에게 여러 자원을 할당해야 할 필요를 단순하게 표현한 것 세마포 해결안Semaphore Soluti..

7.1 고전적인 동기화 문제들 많은 클래스의 병행 제어 문제에 대한 예로서 중요한 여러가지 다른 동기화 문제 제시 유한 버퍼 문제 Readers-Writers 문제 식사하는 철학자 문제 유한 버퍼 문제 6.1절의 유한 버퍼 환경의 생산자-소비자 문제 참고 (https://coding-rocker.tistory.com/133) 11. 프로세스 동기화: Chapter 6. Synchronization Tools (Part 1) 6.1 배경Background 프로세스가 병행concurrent 또는 병렬parallel로 실행될 때 여러 프로세스가 공유하는 데이터의 무결성에 문제가 생길 수 있음 생산자-소비자 문제 생산자: 버퍼에 새 항목을 초기화 coding-rocker.tistory.com 동기화 문제 - 유..