본문 바로가기
학습 노트/개인학습

250501 4일차

by 삼색먕 2025. 5. 2.

**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

댓글