[OS] Virtual Memory
·
IT/Hardware
가상 메모리 (Virtual Memory)● 컴퓨터 시스템에서 물리적 메모리(RAM)의 크기보다 더 큰 메모리 공간을 사용할 수 있게 하는   메모리 관리 기법 ● 물리적으로 용량을 늘리면 되는데 왜 필요할까?  - 초기 컴퓨터 시스템에서는 프로그램이 RAM에 직접 적재되어야 했다.  - 최근에야 RAM에 용량이 높아졌고 비용적인 부분도 효율적으로 변했지만, 초기에는 그렇지 못함.  - 메모리 용량이 부족할 경우 프로그램 실행이 제한되거나, 여러 프로그램을 동시에 실행하지 못함.→ 물리적 메모리보다 큰 주소 공간을 제공하고, 여러 프로그램을 동시 실행할 수 있도록 만들어준다. ● 작동 원리  - 실제 물리적 메모리 주소 대신 가상 주소(Virtual Address)를 사용하여 데이터를 읽고 쓴다.  - ..
[Server] 게임 서버 설계
·
IT/Server
멀티플레이 온라인 게임 - 표준 아키텍처출처 : megazone 각 번호별 AWS 설명1) Elastic Compute Cloud (EC2)  - CPU, Memory, IO 등 높은 성능을 요구하는 멀티플레이어 게임을 위해 다양한 유형과 크기의 EC2를 사용  - 배치 그룹을 활용하여  서버간 네트워크 지연시간을 최소화할 수 있다. 2) ElastiCache for Redis  - 고가용성 확장 가능한 Redis 클러스터에 대한 완전 관리형 AWS 서비스  - 자동 복구 및 읽기 복제본을 통해 확장 가능한 Redis 클러스터를 제공  - Redis의 기능으로 Memory DB만이 아닌 pub/sub 기능을 활요하여 서버 간 통신으로 사용할 수 있다. 3) RDS  - 완전관리형 데이터베이스 서비스  -..
[Hardware] Memory
·
IT/Hardware
Memory, 메모리● 컴퓨터에서 데이터를 저장하고 처리하는 데 필수적인 장치, 기억장치  ● 메모리가 왜 있어야 할까?  - 프로그램 실행 중 필요한 명령어와 데이터를 저장하고,      CPU가 이를 빠르게 접근해야 할 곳이 필요하기 때문에 ● 주소 공간 (Address Space)  - 실행 중인 프로그램이 사용할 수 있는 모든 메모리 상태  - Code, Data, Stack, Heap   ○ 물리 주소 (Physical Address) :     - 실제 메모리(RAM 등) 하드웨어 상의 주소    - MMU(Memory Management Unit)을 통해 물리 주소로 변환    - Base register : 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소)를 저장한다.    - 논..
[TheFourFs] 12
·
Develop Diary/TheFourFs
https://www.ed.ac.uk/reflection/reflectors-toolkit/reflecting-on-experience/four-f The four F's of active reviewingThe four F’s of reviewing will help you to review an experience and plan for the future by moving through four levels: Facts, Feelings, Findings, and Future.www.ed.ac.uk● FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일더보기- TCP 통신 멀티게임 구현 및 완성 (사실 미완성)https://github.com/Wakelight23/tcpmultig..
[OS] Thread & Process - 3
·
IT/OS
Multi Processing● 한 컴퓨터 내 2개 이상의 프로세서(=CPU)들이 같은 작업 내 2개 이상의 서로 다른 부분을   동시(Parallel)에 처리할 수 있는 프로그램 ● 멀티 프로그래밍, 멀티 태스킹과는 다른건가?  ○ 멀티 프로그래밍(multi-programming) :      - 한 CPU는 한 시점에 하나의 프로그램 수행하는 것     - 메인 메모리에 여러 프로그램 유지     - 수행 중인 프로그램 입출력 작업을 수행하면 CPU는 입출력 종료될 때까지       기다리지 않고 다른 프로그램을 수행하는 것   ○ 멀티 태스킹(multi-tasking) :     - 작은 time quantum(시분할)을 사용하여 여러 메모리에 올라와 있는       여러 작업들을 번갈아가며 수행하..
[Project_] MG - Trouble Shooting
·
Project_xxx
TCP 통신 기반 MultiGame 구현 Trouble Shooting●  proto의 일치화 문제  - TCP 통신 서버, 클라이언트에서 가장 중요한 부분은 데이터를 어떻게 직렬화할 것인가  - Binary 형태의 데이터로 주고받는다.  - 이 과정에서 서버와 클라이언트의 proto의 type, 변수 이름, 순서 등 여러 가지 이유로 서버가 보내는    데이터와 클라이언트가 받아야 하는 데이터가 다른 상황이 아주 많았다.// Server의 proto 정의syntax = "proto3";package initial;message InitialPayload { string userId = 1; // 클라이언트와 변수이름이 다르다 uint playerId = 2; // 클라이언트와 타입의 byte..
[OS] Thread & Process - 2
·
IT/OS
프로세스 & 스레드의 생명 주기● 각각의 생명 주기를 가지고 있으며, 운영체제(OS)는 이러한 생명 주기를 관리하고, 프로세스와 스레드를   조정하여 시스템 자원을 효율적으로 사용 ● 프로세스 스케줄링 (Process Scheduling)  - 운영체제에서 CPU를 사용할 수 있는 프로세스를 선택하고, CPU를 할당하는 작업  - 프로세스의 우선순위, 작업량 등을 고려하여 효율적으로 배치   → 운영체제가 CPU를 효율적으로 사용하며 시스템 전반적인 성능을 향상    ○ 스케줄링(Scheduling)    - 운영채제의 특징과 시스템 요구사항에 따라 알고리즘이 다름    - 알고리즘 종류 :        FCFS(First-Come, First-Served)       SJF(Shortest-Job-Fi..
[OS] Thread & Process - 1
·
IT/OS
Thread (스레드)● 프로세스(process) 내에서 실행되는 실질적인 작업 단위● 모든 프로세스는 최소 하나의 스레드(메인 스레드)를 가지고 있다. ● 프로세스의 자원을 이용하여 실제 작업을 수행● 같은 프로세스 내의 다른 스레드들과 자원을 공유프로세스(process)란?- 프로그램을 실행 시켜 작동하지 않던 것을 작동하도록 변화시키는 것- ex) 바탕화면에 Chrome.exe를 더블 클릭 → process! - 컴퓨터가 작업 중인 프로그램 ● 프로그램(Program)과 프로세스(Process)의 차이프로그램프로세스- 어떤 작업을 하기 위해 실행할 수 있는 파일- 실행되어 작업중인 컴퓨터 프로그램- 파일이 저장 장치에 있지만 메모리에는 올라가 있지 않은정적인(Static) 상태- 메모리에 적재되고 ..
[JavaScript] Infinity
·
Programming Language/Javascript 공부기록
코드 문제를 풀다가 Infinity에 대해 궁금한 점Q1. Infinity는 무한대를 나타내는 숫자 값으로 알고 있는데, 이를 사용했을 때 실행 속도면에서       더 느리게 나오는 게 아닌가? ● Infinity에 대한 설명 :   - 전역 객체의 속성이며 전역 범위의 변수이다.  - 다른 어떤 수보다 더 크다.  - 숫자 데이터 타입으로 분류된다. ● 언제 사용하는가?  ○ 최솟값 및 최댓값 계산 :     - 'Infinity' or '-Infinity'를 초기값으로 설정하여 배열이나 데이터 구조에서 가장 큰 값 또는 작은 값을        효율적으로 찾을 수 있다.   ○ 조건 비교 :     - 특정 조건에서 임의의 큰 숫자를 대체할 수 있다.       → Math.min(), Math.ma..
[TheFourFs] 11
·
Develop Diary/TheFourFs
https://www.ed.ac.uk/reflection/reflectors-toolkit/reflecting-on-experience/four-f The four F's of active reviewingThe four F’s of reviewing will help you to review an experience and plan for the future by moving through four levels: Facts, Feelings, Findings, and Future.www.ed.ac.uk● FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일더보기- TCP 통신을 사용한 서버 구축 및 접속에 대해 수강● FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌더보기-..