세리프 따라잡기
WEEK08 - os에 대해 본문
권영진 교수님 강의
~~~ ppt 순서대로 적음!! 문단으로 페이지 넘어가는 것
malloc에서 'sbrk', 'mmap' = system call
1<<20 - size what?
cpu에는 캐시 메모리가 있는데, 처음에는 메모리에서 아키텍쳐로 캐시로 보내고
다음 데이터는 캐시에서 옴
--> 성능차이 10배 차이
map size is way beyond cpu
시간이 더 빠르게 옴
=> page fault가 발생
--> 성능차이 2배
퍼포먼스 디버깅 [어떤 것 때문에 느린지를 이해해야함, 운영체제 공부[
운영체제를 이해할때 중요한 것 탄생
하드웨어가 여러개 있었음
어플리케이션이 직접 쓰게 되면 ->하나 하나 다 짜야했다
운영체제는 하드웨어의 디테일을 숨기고 어플리케이션에게 인터페이스를 만들어주겠다
모든 복잡한건 운영체제가 숨긴다~ abstractions ★
☆☆☆ why is abstraction ☆☆☆
a반 학생: 세부사항은 무시하고 이해하기 쉽ㄱㅔ 그 함수에 들어갈 인자나 리턴값만 알면 된다
교수 曰 개념: 사람들이 이해하는데 필요하다고 생각하는 것을 추출해서 정의함
→ 프로세스나 결과물이 목적을 쉽게 이해하기 위해, 불필요한 데이터는 무시하고
cpu: virtualizing == thread , memory storage
파일에 쓰면 스토리지로~
api system call
abstraction을 해==
프로세스의 개념은 뭐의 abstraction?
== machine의 결과
프로세스는 개별적인 address space를 갖는다 - 다른 address space에 접근할 수 없음
cpu, file을 갖음
→ nice clean abstraction
---------------- 여기까지 abstraction의 개념이며 관점 ----------------------
관계성 부여(associrate)
physical memory를 여러개의 chunk로 나눔 4kb == page
4kb는 또 매핑을 만듬 == page table
page table
virtual address = f(va)
얼마나 효율적으로 만들것인가?
paging의 multi-level page // mmu == 하드웨어 테이블 : 매모리가 읽는 속도가 빨라서 사용
[[[[[hash tag, array, linked-list, tree (binary, red-black, abr tree??, b-tree]]]]
segmetation fault를 찍어주게끔 하는 것은 libc library안에 들어가있음
잘못된 주소 - page fault
page table가 Dram에 있음.
소프트웨어는 워킹
하드웨어는 ,,,,,,,,,,,,,,, 엗
physical memory 어떻게 관리?
demand paging
- page fau -- 이 두개가 ㅏ발생할 경우 allocate한다고
page fault handling
two types of memory: anonymous memory 0으로 만들고 and file-backed memory
DMA = interrupt 공부해봐라!
~~~여까지가 memory abstraction 내용
storage
/a/b/c.text
→ 파일 내의 위치, (offset으로 나눠줌)
os subsystem maps the file to physical storage == file system이라 함
File’s logical block -> Storage physical block
(file index)
va =(page)= va
file index 찾아봐라~ outer index vs index table차이?
스토리지 100
ext 4가지
1. fat 자료구조
2. indirect index 학부 수준에서 배우는 indexing 기법
3. btree
4. extent tree
optimization - page cache, buffer cache
프로그램 레이어를 잘 알고 있짜'
Data is stored to two types of devices (two copies) = consistancy (일관성)
= fsync(): file system sys call(ctrl + s) = 성능에 대한 비용 (스토리지와 메모리의 속도 차이)
☆★ Atomicity and Durability == word 기억하기
두 개의 property를 만족해야 프로그램이 잘...!
Crash consistency example
atomicity 파일 컨텐츠는 2개만 가능
log (rollback.log) ↔ write ahead
2. Rollback logging
creat(/a/log)
write(/a/log, "FOO") // reordered
write(/a/file, “Bar”) // 여기도 crush
unlink(/a/log)
3. Rollback logging with ordering
creat(/a/log)
write(/a/log, “Foo”)
fsync(/a/log)
write(/a/file, “Bar”) // crush
unlink(/a/log)
crush에서
// 1교시와 2교시에 나누어서 수업을 들었었고, 다소 중구난방의 정리입니다 🙄
'SW사관학교 정글' 카테고리의 다른 글
WEEK08 - TIL - priority scheduling (0) | 2022.05.23 |
---|---|
[CS study] - 3 (0) | 2022.05.20 |
WEEK07 - TIL Proxy에 대해 [기초] (0) | 2022.05.17 |
[CS study] - 2 (0) | 2022.05.16 |
WEEK07 - 네트워크 프로그래밍 (0) | 2022.05.13 |