**13챕터
교착 상태란
- 자원을 공유하고 점유하고 있는 프로세스들 간에 서로 다른 프로세스의 자원을 '무한정' 기다리는 상태
식사하는 철학자 문제
- 교착 상태의 예시
자원 할당 그래프
- 교착상태가 발생하는지 자원의 점유하는걸 그래프로 나타낸것
교착 상태 발생 조건
- 상호배제 : 하나의 자원에 하나의 프로세스만 접근할수 있음.
- 점유및 대기 : 자원을 점유한채 다른 자원을 기다리는 상태
- 비선점 : 자원을 점유하고 있는 프로세스에게서 자원을 회수 할수없음 (스케줄링 선점비선점)
- 원형대기 : 자원할당 그래프 상에서 프로세스간 대기상태가 사이클일때
- 4개가 다 만족하면 발생한다,
교착 상태 예방
- 발생조건중 1개라도 만족시키지 않게 하는방법
- 상호배제 : 자원에 여러 프로세스가 접근하면 된다. 현실적으로는 쓰기어려움
- 점유 및 대기 : 점유를 하고있을때 대기하지 않게 한다. 아니면 동시에
- 비선점 : 점유하고 있더라도 일정시간을 두거나 뺏을수 있게 한다.
- 원형대기 : 사이클이 안되도록 각 자원에 번호를 매긴다. (하지만 번호 매기는게 어렵고, 잘못 매기면 활용성이 떨어진다.)
교착 상태 회피
- 조심히 자원을 할당하는 것?
- 자원을 할당 할 때 순서에 따라 교착 상태가 발생하지 않도록 계산.
- 은행원 알고리즘 참고!
교착 상태 검출 후 회복
- 프로세스를 강제종료한다 -작업중내용이 손실
- 프로세스를 순차적으로 강제종료 - 손실이 적어지지만,
교착상태가 해결되었는지 계속 확인해야하는 오버헤드 발생
**14챕터
연속 메모리 할당
- 물리적 메모리에 할당될때 연속으로 할당을 하는방식
스와핑
- 사용중이지 않는 프로그램을 가상 페이지 기법을 사용하여
메모리에 내용을 보조기억장치의 일부영역에 임시로 옮겨놓는것 - 스왑인 - 꺼내옴
- 스왑아웃 - 보조기억장치에 옮김
메모리 할당
- 최초적합 : 메모리를 순차적으로 검색하다가 가장 처음에 나오는 메모리 영역에 할당
- 최적적합 : 메모리영역을 검색해서 가장 작은 메모리 영역에 할당
- 최악적합 : 메모리영역을 검색해서 가장 큰 메모리 영역에 할당 (단편화가 제일 심함)
외부 단편화
- 메모리가 할당, 해제를 반복하며 사이사이에 할당 불가능한 메모리 빈공간이 많아지는 현상
- 압축 : 메모리 빈공간이 없게 압축한다 메모리를 이동하는 동안 작업이 중지되는 단점.
페이징이란
- 외부단편화를 해결하기 위해 나온 기법이다
- 단편화가 되지 않도록 메모리를 더 작게 분할하여(프레임) 비연속적으로 할당하므로
프로세스의 메모리 크기가 달라도 단편화를 줄일수 있다. - 외부단편화는 해결되지만, 프레임 공간보다 작은 빈공간 내부단편화가 생긴다
페이지 테이블
- 페이지-프레임의 대한 정보
- 후술할 주소 변환에 필요한 정보다
- [페이지번호-프레임 번호]로 구성
페이징에서의 주소 변환
- 주소변환을 위해 메모리에 항상 페이지 테이블을 두고,
- TLB (캐시메모리)를 중간에 두어 메모리와 CPU사이에서 중계역할을 함
- 캐시히트와 동일하게 TLB히트 TLB미스가 발생할경우 메모리에 접근해야하는 문제 발생
페이지 테이블 엔트리
- 페이지테이블은 추가적인 정보가있는데 권한정보(r,w,x), 참조, 수정 정보가 같있다.
페이징의 이점 - 쓰기 시 복사
- 자식프로세스생성시 메모리에 복사를하는 fork() 를 한다 했었다.
- 그러면 메모리에 동일한 메모리를 차지하는데
- 페이징을 하면 동일한 메모리를 참조한다.
- 이후 부모혹은 자식 프로세스가 쓰기시 복사하는 기법
- 용량을 절약할수있다.
계층적 페이징
- 페이지테이블이 너무 많아지면 이것도 TLB가 모자라는데
- 계층적으로 관리하는 방법
요구 페이징
- 요구하면 페이지를 올리는 기법이다, 최초에도 올리지않으므로 최초에는 느린편
- 최초에는 페이지 폴트가 많이 발생한다.
페이지 교체 알고리즘
- 페이지 교체시 폴트를 줄이는방법
- 선입선출 - 들어온 순서대로 스왑아웃 하는 방식
- 2차기회- 바로 스왑아웃 하지않고 참조한적이 있으면 참조플래그를 0으로 만들어서 뒤로 보내는 방식
- 최적교체-앞으로 사용되지 않는 페이지를 스왑아웃
예측해야 하기때문에 구현이 어려움- 이론상 성능 비교용으로 사용된다. - LRU - 최근에 사용되지 않은 페이지를 스왑아웃 (가장오래된)
스래싱과 프레임 할당
- 스래싱이란 페이징이 너무 많이발생하여 프로세스 실행시간보다
페이지교체 작업의 시간이 더 걸리는 현상.
메모리가 작아도 발생한다. - 프레임할당
(정적)균등할당 - 모든 프로세스를 균등하게 메모리 할당 (비효율적)
(정적)비례할당 - 프로세스 메모리 크기에 따라 메모리할당
(크기와 사용률이 비례하지않는점에서 좋진 않다)
(동적)페이지빈도수할당 - 페이지가폴트가 자주나면 할당하고, 안나면 줄이는방식
(동적)작업집합-일정시간을 설정하여 시간대비 작업한 수만큼 할당
**15챕터
파일
- 데이터와 파일의 정보를
디렉터리 - 폴더 (특별한 파일 취급)
파티셔닝과 포매팅
- 파티셔닝 : 용도에 맞게 사용할 공간을 분할 해 놓은것
- 포매팅 : 파일시스템 설정하고 어떻게 관리할지 정하는것
파일 할당 방법
- 연속할당 : 블록을 연속적으로 배치한 방식 (Array) -> 외부단편화 생긴다
- 연결할당 : 블록마다 다음블럭을 가르키는 방식 (Linked list) ->중간데이터손실시 이후데이터도 손실
- 색인할당 : 색인블록이 파일의 각 블록의 위치를 가지고있다.
파일 시스템 살펴보기
- FAT : 연결할당기반으로, 파일할당테이블을 두고(메모리에 올려놓을수도 있음)
각 파일의 연결 위치를 바로 알수 있게 한 방식 - Unix : i-node를 참조하여 파일을 읽는 방식 (한쪽으로 치우친 트리 모양)
저널링 파일 시스템
- 작업중에 OS가 강제종료하면 파일에 손상을 입을수 있는데,
OS가 작업할때 작업할 내용등의 정보를 로그로 남겨놓고, 작업후 삭제한다.
강제종료가 되서 OS가 부팅하면, 파일이 손상된게 없는지 로그를 확인후 복구.
컴퓨터구조 + 운영체제 1회독 완-
오전에는 Do it 자료구조 책을 2챕터 봤는데 자세히 읽느라 좀 오래걸렸다.
내일 예정 Do it + 복습 or 코테형풀이 + 네트워크 책 시작
'학습 노트 > 개인학습' 카테고리의 다른 글
250503 6일차 (0) | 2025.05.04 |
---|---|
250502 5일차 (0) | 2025.05.03 |
250430 3일차 (0) | 2025.05.01 |
250429 2일차 (0) | 2025.04.30 |
250428 1일차 (0) | 2025.04.29 |
댓글