일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 게임개발
- AINCAA
- MAC
- STCF
- DSP
- MLFQ
- Double free
- RBAC
- 운영체제
- dtft
- Unity #Indie Game
- 배경 그림
- DP
- sampling theory
- Security
- pdlc
- Rr
- linear difference equation
- 게임 개발
- 언리얼엔진
- frequency-domain spectrum analysis
- stride
- Race condition
- Frequency Response
- dirty cow
- TSet
- 메카님
- 유스케이스
- 유니티
- ret2libc
- Today
- Total
목록운영체제 (30)
다양한 기록
https://github.com/Lagooneng/ConcurrentBST GitHub - Lagooneng/ConcurrentBST: Concurrent Binary Search TreeConcurrent Binary Search Tree. Contribute to Lagooneng/ConcurrentBST development by creating an account on GitHub.github.com싱글 스레드,Coarse-grained lock, Fine-grained lock (1, 2, 4, 8 스레드)에서 성능 분석* 삽입, 삽입-탐색, 삽입-탐색-삭제 세 가지 상황 존재 1. Lock Type(Non, Coarse, Fine)과 Thread 수에 따른 실행시간 비교 분석* 자세한 분석을..
https://github.com/Lagooneng/Scheduler GitHub - Lagooneng/Scheduler: Process Scheduling SimulatingProcess Scheduling Simulating. Contribute to Lagooneng/Scheduler development by creating an account on GitHub.github.com SPN, RR(q=1), RR(q=4), SRT, HRRN, MLFQ(q=1), MLFQ(q=2^i) 일 때 스케줄링을 구현 및 분석* Feedback == MLFQ 워크로드 AProcessArrival TimeService Time103226344465582Context Switching Time: 0.01 / 0.1..
프로세스의 어떤 데이터는 디램에, 어떤 데이터는 디스크 상에 존재할 수도 있음자주 접근하는 데이터는 메모리에 두고,잘 안쓰는 데이터는 디스크에 둘 수 있음 => 디맨드 로딩 스왑 공간디스크 상의 공간파일 시스템에서 첫번째에 루트 파일 시스템, 두번째 파티션에 스왑 공간을 둘 수 있음메모리에 있는 데이터를 디스크로 이동할 때 스왑 공간을 사용메모리 스페이스가 부족할 때 스왑함 어떤 단위로 옮기느냐-> 페이지나 프로세스 단위언제: light(페이지) VS heavy(프로세스) 메모리 헝그리 컨디션어떻게: replacement policy (LRU pages, low-priority processes) Benefit- 프로세스를 위한 버추얼 메모리가 엄청 큰 것처럼 - 프로그래머한테 투명함 (vs memory..
물리 메모리에 할당을 불연속적으로 하는데, 프로세스를 고정 크기로 나누어 할당함지금은 세그멘테이션보다는 페이징을 사용함 세그멘테이션은 가변 크기라 하드웨어랑 친하지 않아 가속받기 어렵고,외부 단편화 문제와 프리스페이스를 다루는 문제가 있음 페이징은 고정 크기라 프리 스페이스 관리가 쉽고 하드웨어 가속도 받을 수 있음 왜 페이징인가버추얼 메모리: 고정된 사이즈의 유닛들(called page)로 나뉨피지컬 메모리: 고정된 사이즈의 유닛들(called page frame)로 나뉨주소 변환: Page Table 을 사용 페이징 예시버추얼 어드레스 사이즈: 64B페이지 크기: 16B=> 4개의 페이지피지컬 메모리는 128B, 프레임 사이즈 16바이트 (보통 페이지 크기와 같음)=> 8개의 프레임 3752페이지 테..
불연속적으로 할당하면 중간에 프리 스페이스를 아낄 수 있음그 중 하나가 세그멘테이션 (요즘엔 세그멘테이션보단 페이징이 대부분)각 세그먼트를 물리 메모리에 따로따로 저장 프로그램을 여러개의 세그먼트로 나누고세그먼트 마다 각각의 base/bound per segment를 지원각 세그먼트의 사이즈는 가변 주소 변환SegmentBaseSizeCode(00)32KB2KBHeap(01)34KB3KBStack(11)28KB2KBvirtual address 100 -> 32KB + 100virtual address 4200 -> 34KB + 104 (4200 - 4096)virtual address 8000 -> Segmantation fault virtual address: segment number + offse..
CPU 가상화 -> 타임 쉐어링메모리 가상화 -> 스페이스 쉐어링 1. Early Systems물리 메모리를 그대로 사용함메모리에 OS와 하나의 프로그램이 올라감프로텍션 X 이슈: 프로그램이 물리 메모리보다 크면?개발자가 프로그램을 나눠서 올리고 내리고 반복 => 오버레이 2. Multiprogramming and Time Sharing* 멀티 프로그래밍 단어 자체는 메모리 상에 여러 프로세스가 올라간 거* 여기에 CPU 가상화까지 타임 쉐어링프로텍션 중요, 어떻게 물리 메모리를 잘 나눠줄 것이냐 3. 버추얼 메모리가상적인 메모리 공간을 프로세스가 혼자 사용프로세스의 개수만큼 버추얼 메모리가 존재물리 메모리는 쉐어 / 버추얼 메모리는 독점 목표:- 사용하기 편해야 함- 빨라야 함- 프로텍션 (Isola..
플래시 메모리는 비휘발성차이디스크는 리드 라이트 두 개만 지원- 플래시 메모리는 추가로 이레이즈 연산이 있음 -> 제공하는 추상화가 다름- 리드, 라이트는 4/8키로 바이트 단위(페이지)로 가능한데 이레이즈는 512KB 단위(블록)- 내구성: 1000번 라이트하면 고장남 칩은 블록으로 나누어지고, 블럭에 페이지가 있음페이지 하나하나가 4K, 혹은 더 크기도 함* 디스크의 블럭과 플래시의 블럭은 다름 솔루션Out-of-place update원래 있던 위치 말고 다른 위치에 씀그리고 inode의 포인터 위치를 바꿈그리고 원래 있던 건 인밸리드 블록으로 처리하고 가비지 컬렉션해서 회수 F2FS: Flash Friendly FS by SamsungFFS처럼 Inode를 쓰고 LFS처럼 Out-of-place 업..
fsck: a lazy approach저널링: an active approach .. 문제가 발생하지 않아도 미리미리 대비 Soft update항상 순서, 룰을 지키면서 업데이트너무 복잡해서 보통 그냥 저널링을 씀 CoW (Copy on Write)파일이 트리 형태로 관리될 때, 바로 수정하는게 아니라 복사한 다음 복사한 위치에 수정함그다음 상위 파일도 마찬가지로 복사해서 수정된 노드를 가리키도록 하고, 최종적으론 루트까지 카피해서 바꿈 Optimistic Crash Consistency 이름처럼 정상적으로 작동할 것이라 가정하고 최대한 많은 작업을 동시에 수행시켜 성능 극대화대신 체크섬을 이용하여 데이터가 손상되었거나 불일치가 발생했는지 감지 가능 Ext2기본 아이디어: 패스트 파일 시스템을 리눅스성..