세리프 따라잡기

WEEK08 - os에 대해 본문

SW사관학교 정글

WEEK08 - os에 대해

맑은 고딕 2022. 5. 20. 15:54

권영진 교수님 강의

 

~~~ 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
Comments