전체 글 116

[운영체제 이해하기 2] 운영체제의 자원 관리 기능 개요

자원 관리 기능의 필요성 운영체제의 가장 핵심적인 기능을 꼽으라면 컴퓨터의 자원을 효율적으로 관리하는 것입니다. 앞에서 설명한 것처럼 자원은 하드웨어 자원과 소프트웨어 자원으로 나눌 수 있습니다. 먼저 하드웨어 자원은 CPU, 메모리, 입출력 장치 등으로 구성됩니다. CPU는 일반적으로 컴퓨터 당 하나가 장착되고 메모리또한 한정된 용량만 존재하기 때문에 운영체제의 관리가 필요합니다. 그리고 CPU와 메모리는 전원이 꺼지면 처리 중이던 정보가 모두 지워지기 때문에 전원이 나가도 기억해야 하는 부분은 입출력 장치의 일종인 보조기억장치에 파일 형태로 저장해야합니다. 자원 관리 : CPU CPU 스케줄링(CPU Scheduling)이란? 하나의 CPU에서 여러 프로세스를 수행하기 위해 매 시점 어떤 프로세스를 ..

운영체제 2023.05.29
[운영체제 이해하기 1] 운영체제란?

과거의 컴퓨터 컴퓨터가 개발된 초창기에는 하드웨어 자체를 관리하는 일과 실제 수행시킬 프로그램을 작성하는 일을 사용자가 다 해야했습니다. 즉 프로그램을 컴퓨터에서 수행시키려면 사용자가 시스템을 직접 시작시키고 컴퓨터에 로딩해 수행해야 했습니다. 하지만 이러한 방법이 비효율적임을 인식하고 컴퓨터가 자동적으로 일을 처리해주도록 만들 수는 없을까? 라는 고민에서 탄생한 것이 바로 운영체제입니다. 운영체제의 정의 운영체제는 영어로는 Operating System으로 컴퓨터의 하드웨어 바로 윗단에 설치되는 소프트웨어를 말합니다. 운영체제는 사용자가 하드웨어를 다루는 것이 쉽지 않으므로, 하드웨어 위에 기본적으로 탑재되어 전원을 켰을 때 사용자가 손쉽게 사용할 수 있도록 만들어줍니다. 메모리 소프트웨어가 컴퓨터 시..

운영체제 2023.05.29
[UE4] 내적(DotProduct) 와 외적(CrossProduct)에 대한 이해

게임 개발에 있어 벡터 연산은 물리엔진 쪽으로 깊게 들어가면 빼놓을 수 없는 요소다. 3D공간에서 특히 벡터는 직관적이며, 여러가지 문제를 훨씬 효율적으로 해결해준다. 그래서 속도, 바람, 충돌 등 많은 물리계산이 벡터로 표현된다. 내적(DotProduct) 임의의 벡터 A와 B를 가정해보자. 벡터의 내적은 A와 B의 크기를 곱하고 사이각의 Cos값을 곱한 값이다. 결과값은 당연히 스칼라 값이 된다. 그렇다면 내적은 어디에 사용하는 것일까? 1. 두 벡터의 사이각 구하기 두 벡터의 사이각을 내적을 통해서 구할 수 있다. 게임에서 두 벡터의 값을 구하는 건 큰 문제가 아닐 것이다. 이 두 벡터를 내적하면 사이각을 구하고 이는 여러 게임 요소에 사용될 수 있다. 2. 적이 내 앞에 있는지 뒤에 있는지 나와 ..

UE4 2023.05.15
[Unity] 코루틴이란?

코루틴이란 시간의 경과에 따라 일련의 절차적 단계를 수행시키는 로직을 구현하는 데 사용되는 객체이다. 사실 Update함수에서도 가능한 내용들이지만 초당 호출이나, 매 프레임마다 굳이 호출이 필요하지 않은 부분을 매 프레임마다 호출하는 것은 바람직한 로직이 아니다. 코루틴의 역할 코루틴은 함수를 호출한다. 함수는 한 프레임에 호출되어 완료된다. 이때 함수는 IEnumerator 형을 반환 값으로 가지는 함수를 사용하고, IEnumerator에서 사용하는 다양한 yield return 구문을 사용해 흐름을 제어한다. yield return yield return 구문에는 아래와 같이 yieldInstruction 클래스를 사용한다. yield return null : 다음 프레임에 실행을 재개한다. yie..

Unity 2023.05.13
[Unity] 열거자 인터페이스 (IEnumerator)

이게 뭔데? 유니티 개발을 하면서 한번쯤은 다들 코루틴에 대해 접해보았을 것이라 생각한다. 코루틴을 사용하기 위해 StartCoroutine 함수를 사용할 때 인자로 넘겨주는 값이 바로 이 열거자 인터페이스이다. Current, MoveNext(), Reset()을 포함하였을 때 인터페이스를 사용할 수 있다. private Coroutine shopOpen = null; // 코루틴 선언. shopOpen = StartCoroutine(ShopOpen()); //코루틴 정의. IEnumerator ShopOpen(){...}; // 열거자 인터페이스. 무슨 기능을 하는데? 유니티에서 IEnumerator은 작업을 분할하여 수행하는 함수라고 생각하면 편하다. IEnumerator GetNumberIEnum..

Unity 2023.05.13