일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 게임 개발
- stride
- STCF
- 배경 그림
- MAC
- 게임개발
- Unity #Indie Game
- dirty cow
- 언리얼엔진
- 유니티
- pdlc
- Security
- 메카님
- DSP
- CTF
- ret2libc
- frequency-domain spectrum analysis
- 유스케이스
- Double free
- sampling theory
- linear difference equation
- RBAC
- Race condition
- MLFQ
- 운영체제
- dtft
- DP
- TSet
- AINCAA
- Rr
- Today
- Total
목록운영체제 (30)
다양한 기록
Journaling일종의 WAL (Write-Ahead logging)데이터를 쓰기 전에 그 의도를 다른 곳에다 적어두는 방법** 그 '다른 곳'은 Ext3이면 블록 중 하나를 저널 블록으로 사용 / 다른 파일 시스템은 파티션을 저널 공간으로 쓰기도 함 저널링 FS- 리눅스 Ext3/4, IBM JFS, SGI XFS, NTFS 등Ext3 특징- Ext2 파일 시스템에 저널링을 더함- 세가지 타입: 데이터 저널 / 오더드 저널 / 라이트 백 Data JournalingI[v2] | B[v2] | Db총 세가지 라이트가 있을 때 트랜잭션으로 세 과정을 묶음 Txb | I[v2] | B[v2] | Db | TxE트랜잭션 비긴 / 트랜잭션 엔드가 추가되어 5개의 과정이 됨트랜잭션이 잘 끝나면 오리지널 데이터를..
비휘발성 -> 전원을 꺼도 데이터가 남아있음일관성을 유지시킬 필요가 있음 Consistency Definition의미 있는 상태에서, 또다른 의미있는 상태로 바뀌도록 보장하는 것그 방법 중 FSCK, Journaling 이 있음그 외에도 소프트 업데이트, COW, Integrity checking, Optimistic 등이 있음 구체적인 예시파일 사이즈가 4KB라 가정어떤 파일에 4KB를 추가로 appending 한다고 하면데이터 비트맵, inode 블록, 데이터 블록 총 세 번의 write가 필요함 이때, 지연 쓰기를 한다고 하면갑자기 전원이 꺼지거나 시스템이 크래시되면 몇몇 라이트는 써지지 않을 수 있음1. 데이터 블록만 써짐- 문제 없음 2. 데이터 비트맵만 써짐- 공간 낭비 3. inode만 써짐..
UFS (유닉스 파일 시스템)- 레이아웃부트 섹터슈퍼블록비트맵Inode유저 데이터심플하고 사용하기 쉬움보기에는 괜찮으나, Seek distance 같은 걸 고려하면 성능에 문제가 있고,데이터 하나를 write하는데에 상당히 많은 I/O가 발생-> 성능 문제-> 일관성 문제 성능적으로 굉장히 나쁨UFS의 구조대로면 디스크 바깥쪽에 inode가 쭉 쌓이고 안쪽에 유저 데이터가 존재inode와 데이터 접근을 번갈아하면서 디스크 시크가 많이 발생하게 됨=> FFS .. inode와 유저 데이터를 가까운 곳에 놓겠다. 같은 실린더 그룹에 있는 데이터는 시크 디스턴스가 필요 없음혹은 가까운 실린더에서는 시크 디스턴스가 적게 필요* Ext2/3/4에서 사용되는 개념.. 블록 그룹이라 부름** 실린더 그룹: 중심으로부..
다양한 종류의 파일 시스템UFS, FFS, EXT2/3/4,JFS(저널링), LFS(로그 스트럭처드), NTFS(윈도우), F2FS(플래시-프렌들리.. 삼성 꺼),FUSE(유저 레벨 커널 시스템), RAMFS(램), NFS(네트워크), AFS(앤드류),ZFS(제타바이트, 솔라리스에서 만듦), GFS(구글), FATFS, BtrFs..VSFS(베리 심플 파일 시스템)유닉스 파일 시스템 심플 버전을 구상해보자 디스크파일 시스템 입장에서는 디스크는 그냥 4k 블록 집합으로 봄 파티션디스크 블록들의 집합디스크 블록의 크기는 보통 메모리의 페이지 크기와 같음 = 4 KB VSFS에서는 디스크 블록이 64개 있다고 가정 슈퍼 블록 - 0번에 할당파일 시스템을 관리하기 위한 메타 데이터 비트맵 - 1~2번 블록빈 공..
APIs 시스템 콜- open (파일 디스크립터 리턴)- I/O(read, write)- attribute(stat, chown, chmod 등 속성 관련)- create (inode 할당)- name resolution (디렉토리 계층 트래버스)- 파일 시스템 관리- 디렉토리 관리.... OS 내부- 블록 할당, 반납- inode 할당, 반납- namei (name resolution을 하기 위한 내부 인터페이스)- 버퍼 관련 // open with create flagint fd = open("foo", O_CREAT | O_WRONLY | O_TRUNC, S_IRUSR | S_IWUSR);// creat() ,, 잘 안씀int fd = creat("foo");open()인자- name- flags(..
컴퓨터 시스템4개의 추상화- 프로세스(스레드)- 버츄얼 메모리- lock- 파일 파일은 스토리지(하드디스크 , SSD)에 저장됨휘발성 / 비휘발성Non-volatility -> 전원이 공급되지 않아도 데이터를 유지 가능=> 영속성 제공 가능 - 정보를 영구적으로 유지 가능 이슈1: 무결성데이터에 결함이 있으면 안됨 (비트 에러 등) 이슈2: Space-efficiency껐다 켜도 데이터가 그대로 -> 비효율적으로 쓰면 그대로 비효율적으로 저장됨처음부터 잘 관리해야 함 이슈3: 일관성슈퍼블록, 비트맵, inode, 데이터블록 등등 -- 이슈4: Crash consideration (fault-tolerance)고장이 나도 복구가 되어야 함 이슈 5: Access Control이슈 6: 보안 이러한 이슈들을..
하드 디스크는 기본적으로 섹터(512 바이트)의 집합임플래터의 표면 서피스에 데이터를 저장하고, 트랙이 몇천개가 있고, 하나하나 섹터가 있음 섹터 번호를 주고 읽어달라고 하면 읽어주게 될 것물리적은 읽는 건 서피스마다 존재하는 헤드가 해 줄 것그리고 암(arm)이 가야하는 섹터로 헤드를 이동시킴 (Seek)회전은 Rotation 데이터 액세스: Seek time + Rotaion latancy + Transfer time ** 실린더는 여러 원판에서 같은 위치에 있는 트랙들의 집합을 의미파일 시스템에서 데이터들을 찾을 때 시크 타임이 필요가 없어짐 디스크 액세스 예시10000 rpm (rotation per minute)10000 rotation/ms / 60000 ms -> 6ms한바퀴 도는데 6ms ..
디바이스 디바이스를 볼 때는 버스를 중심으로 보게 된다과거 - 계층 구조- 메모리 버스(시스템 버스): CPU와 메모리 용도. 빠르고 비싸고 짧음- I/O 버스: SCSI, SATA, USB.. 느리고 싸고 긺** I/O버스 중 빠른 애들은 별도의 버스 사용 (그래픽 카드) 모던 시스템멀티코어, 누마 시스템 등.. -> 네트워크 형태Special interconnect: Memory interconnect, Graphic interconnect- Memory interconnect : 메쉬 형태. (QPI = QuickPath Interconnect, Hyperport)- Graphic interconnect (PCIe = Peripheral Component Interconnect Express.. 주..