main 스레드 = CPU
생명주기 : main stack과 동일함
게임 다운로드 → 하드디스크
게임 실행 → 필요한 부분만 메모리에 로드
메모리에 있는 것을 하드디스크에 저장 : commit, write, input
하드디스크에 있는 것을 메모리에 올리는 것 : load, output, allocate(할당)
현재 사용하지 않는 데이터 : 하드디스크
프로세서 : 프로세스를 관리하는 것
- 액추에이터 (Actuator) : 핀의 역할, 물리적 느림
- 나이테 : 섹터(Sector)
- 회전 시간 : RPM(분당 회전수)
기록 방법 : 물리적으로 상처를 내서 기록
다이렉트 액세스 = 랜덤 액세스
1) 원판이 돌면서 핀에 걸림
2) 핀이 수평 이동
데이터를 찾을 때까지 1), 2)가 반복됨
핀이 이용하는 시간 : seek
풀스캔하는 시간 : 바퀴를 도는 시간 + 핀 이동 시간
수평 이동을 여러 칸을 하면 풀스캔 시간이 줄어듦
그 데이터가 어디 있는지 적혀있는 테이블이 필요함
나이테 주소를 알면 회전 없이 바로 이동해서 회전할 수 있음
메모리에 사용 가능한 용량 < 하드디스크에서 로딩하는 용량
페이지 교체 : 데이터를 쓰면서 자기 프로그램을 스왑해서 안 쓰는데이터를 하드디스크에 보내고 쓰는 것을 로딩함
운영체제가 알아서 해줌
** Swap : 디스크 공간을 이용하여 부족한 메모리를 대체
가상 메모리 : 하드디스크의 일부분을 메모리인 것처럼 CPU한테 속여서 사용
속도는 느림
프로세서 : CPU / 프로세스를 관리하는 것
프로세스 : 메모리에 끌어올리면 프로세서가 프로세스
스레드 : 일꾼
CPU : 논리적으로 스레드가 될 수 있음
실행되는 순간 CPU가 스레드가 됨
슬라이싱 : 시분할(시간을 분할)
멀티 스레드 : 느림, 왔다갔다함
문맥(전후 사정)을 기록 ⇒ CONTEXT 스위칭 시간이 필요함
하는 이유 : 동시에 실행하는 것처럼 보이기 위함
네이티브 콜 = 시스템 콜 : 네이티브에서 쓰는 것을 자바에서 임대해서 사용
** 네이티브 : 운영체제가 하는 것
스레드를 사용하는 이유
- 컴퓨터의 속도가 빨라지지 않음
- UX(User Experience : 사용자 경험)가 좋아짐
프로세스 : 하드 디스크에 기록된 것이 램으로 로드된 것
프로세서 : 모든 프로세스 관리, cpu
모든 프로세서는 무조건 스레드를 1개 가짐
하드디스크에서 프로그램을 인풋 아웃풋 하는 용어 : I/O
I/O를 줄이는 것이 속도를 줄이는데 굉장히 영향을 미침
예시) 1) 처리
2) 처리
3) IO : CPU가 메모리에 명령 → 램과 하드디스크가 일함
wait 시간 : CPU가 낭비하는 시간이 생김
새로운 스레드에게 맡김
4) 처리
5) 처리
Share article