전체 글
-
Parrying Sword #56 : 유니티 프로파일러유니티 게임 개발/메인 프로젝트: Parrying Sowrd 2024. 5. 22. 19:38
패링 소드의 최적화 작업을 시작했습니다.유니티의 프로파일러 기능을 사용하면 어떤 작업 때문에 처리가 느려지는지 알 수 있습니다. 맵이 크면 프레임 드랍이 좀 심해서 최적화가 필요하다고 느꼈는데,일단 유니티 엔진의 버전을 올리니 최대 6배 가량 프레임이 빨라지는 등프레임에 문제가 없어져서 플레이 환경에서 별로 문제는 없는데, 일단 프로파일러로 어디서 문제가 발생하는지 확인을 해보았습니다. 사실 이대로면 분석을 하는 의미가 없기에 맵을 과하게 확장시켰습니다. (21 * 21 크기, 기본 맵 크기는 훨씬 )맵의 규모가 커지면 그냥 단순히 오브젝트가 많아서 부하가 걸리는 건지,렌더링하느라 시간이 걸리는 건지, 물리 엔진 문제인지 그냥은 알기가 힘들기 때문에 테스트가 필요했습니다. 프로파일링을 보면 물리엔진..
-
DHCP, NAT네트워크 2024. 5. 21. 20:37
DHCP (Dynamic Host Configuration Protocol)서버가 네트워크에 조인하려는 호스트에게 자동으로 IP를 할당해주는 응용 계층의 프로토콜 정해진 개수의 IP를 들고 있고, 호스트가 요청하면 IP를 할당해줌예를 들어 학교의 와이파이 같은 경우가 해당모든 학생마다 각각을 위한 IP를 주기보다는 적당한 수의 IP를 준비해두고 달라고 하면 주는게 효율적 작동 원리1. DHCP discover:- 호스트가 브로드 캐스트 요청 (src, dest, 등 아는 거 없고 그냥 보냄)- 누가 DHCP 서버인지 모르니까 일단 네트워크에 브로드캐스트- 있는 건 트랜잭션 ID 2. DHCP offer:- DHCP 서버만 요청을 인식하고 응답 (소스만 있고, 목적지는 모름, 서버도 브로드 캐스팅)- yi..
-
IP addressing: Subnet Mask, CIDR네트워크 2024. 5. 21. 16:53
IP address32비트 identifier 인터페이스IP 주소는 각 장치의 인터페이스와 연결됨- 호스트/라우터와 물리적 링크와의 연결- 호스트는 일반적으로 하나나 두개의 인터페이스를 가짐(랜, 와이파이)계층적 주소 체계IP 주소: 네트워크 ID + 호스트 ID IP 주소 등급ICANN에서 IP 주소를 관리함 Range for first byte시작 비트Network IDClass A0~12707비트 (8비트까지)Class B128~1911014비트 (16비트까지)Class C192~22311021비트 (24비트까지)Class D224~2391110 Class E240~2551111클래스 A- 네트워크 개수 2의 7승- 24비트 호스트에 할당그만큼 호스트의 개수가 많음 클래스 B- 네트워크 개수 2의 ..
-
파일 시스템 - 레이아웃운영체제 2024. 5. 20. 19:29
다양한 종류의 파일 시스템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번 블록빈 공..
-
파일 - 인터페이스운영체제 2024. 5. 20. 15:21
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(..
-
파일과 디렉토리운영체제 2024. 5. 19. 22:10
컴퓨터 시스템4개의 추상화- 프로세스(스레드)- 버츄얼 메모리- lock- 파일 파일은 스토리지(하드디스크 , SSD)에 저장됨휘발성 / 비휘발성Non-volatility -> 전원이 공급되지 않아도 데이터를 유지 가능=> 영속성 제공 가능 - 정보를 영구적으로 유지 가능 이슈1: 무결성데이터에 결함이 있으면 안됨 (비트 에러 등) 이슈2: Space-efficiency껐다 켜도 데이터가 그대로 -> 비효율적으로 쓰면 그대로 비효율적으로 저장됨처음부터 잘 관리해야 함 이슈3: 일관성슈퍼블록, 비트맵, inode, 데이터블록 등등 -- 이슈4: Crash consideration (fault-tolerance)고장이 나도 복구가 되어야 함 이슈 5: Access Control이슈 6: 보안 이러한 이슈들을..
-
Hard Disk Drive / Time io, Time rate / Disk Scheduling운영체제 2024. 5. 19. 21:38
하드 디스크는 기본적으로 섹터(512 바이트)의 집합임플래터의 표면 서피스에 데이터를 저장하고, 트랙이 몇천개가 있고, 하나하나 섹터가 있음 섹터 번호를 주고 읽어달라고 하면 읽어주게 될 것물리적은 읽는 건 서피스마다 존재하는 헤드가 해 줄 것그리고 암(arm)이 가야하는 섹터로 헤드를 이동시킴 (Seek)회전은 Rotation 데이터 액세스: Seek time + Rotaion latancy + Transfer time ** 실린더는 여러 원판에서 같은 위치에 있는 트랙들의 집합을 의미파일 시스템에서 데이터들을 찾을 때 시크 타임이 필요가 없어짐 디스크 액세스 예시10000 rpm (rotation per minute)10000 rotation/ms / 60000 ms -> 6ms한바퀴 도는데 6ms ..
-
ptr[-1], ptr[-2]가 가지는 의미보안개론 2024. 5. 19. 01:56
#include int main() { int num1 = 10; int arr[5] = {50, 51, 52, 53, 53}; int num2 = 90; int *ptr = arr; printf("addr of num1 = %p\n", &num1); printf("addr of arr[0] = %p\n", &arr[0]); printf("addr of arr[1] = %p\n", &arr[1]); printf("addr of num2 = %p\n", &num2); printf("addr of ptr = %p\n\n", &ptr); printf("arr = %p, %x\n", arr, (unsigned int)arr); printf("ptr = ..