jun-wiki

View My GitHub Profile

Posts (Latest 10 updated) :
Read all
Contents:
  1. OS특강
    1. 간단 복습
      1. 추상화란 무엇인가?
    2. 시작

OS특강

OS특강 2회차다

안그래도 이제 딱 Pintos 프로젝트 3 들어가는데 적절한 타이밍같다


간단 복습

저번 시간 간단히 복습했다

OS배워야 하는 이유랑 OS가 무엇이고 뭐하는지 등등

속도 차이나는 이유로 캐시랑 페이지 폴트가 미치는 영향 보여주며 말이다

페이지 폴트 일어났을때를 지금 프로젝트 3 vm에서 구현해야한다

OS가 필요한 이유: 추상화를 통해 하드웨어 다루기 쉽게 하고 유저 프로그램 사용하기 쉽게 하기 위해서

추상화란 무엇인가?

필요한건 이해하기 쉽게하고 덜중요한건 가린다

pml4는 트리구조를 쓴다

이유: 페이지테이블 크기 줄이기 위해서

TLB캐시를 따로 갖고 있다

이유: 메모리 영역이라 느리다

반환받은 페이지 다시 할당해주기 이전에 0으로 채워야 한다

file-backed와 anonymous의 차이

0으로 채워 넣느냐 vs 파일을 채워 돌려주냐

스토리지의 추상화

메모리와의 차이점

  • 용량 훨씬 크다

  • 전원 꺼져도 데이터 유지


시작

분리에 대한 문제 나온다

시스템 보호를 위해 중요한 내용은 OS외에는 못건들게 분리한다

이러한 보호를 위해 타이머 인터럽트 만들고 권한에 따른 실행 명령 나누고 등등 한다

시스템 권한 부여는 프로젝트2에서 구현하기도 했다

프로세스간 메모리 공유

shared memory 방법: 피지컬 메모리 공유

  • 파이프 방식

    • 커널 거쳐서 더 느리다

    • 단방향이다

자원 분배

  • 시간으로 쪼개기 (디아루가 유형)

    • CPU

    • 타이머 인터럽트

    • 스케줄링으로

  • 공간으로 쪼개기 (펄기아 유형)

    • 메모리

    • 가상 메모리


시간으로 쪼개기는 프로젝트 1에서 이미 스케줄링으로한거다


페이징할때 캐시에 있는 놈 내쫓기 위한 그나마 좋은 방식 LRU (Least Recently Used)


일단 대충 적어놓고 나중에 정리하겠다

정보과다의 시간이었어서 이해가 안가는게 너무 많다