[운영체제] 파일 시스템
·
컴퓨터 과학/운영체제
1. 파일과 디렉터리1-1. 파일파일 시스템: 보조기억장치의 정보를 파일 및 디렉터리의 형태로 저장하고 관리할 수 있도록 하는 운영체제 내부 프로그램파일 구성: 파일의 이름, 파일을 실행하기 위한 정보, 파일과 관련된 부가 정보인 속성(메타데이터)속성: 파일의 형식, 위치, 크기 등 파일과 관련된 정보가 포함되어 있음파일 디스크립터(파일 핸들): 저수준에서 파일을 식별하는 정보로, 0 이상의 정수 형태를 띄고 있음운영체제는 프로세스가 새로 파일을 열거나 생성할 때 해당 파일에 대한 파일 디스크립터를 3부터 프로세스에 할당한다.0 : 표준 입력(키보드)1 : 표준 출력(모니터)2 : 표준 에러파일을 다루는 작업은 모두 운영체제에 의해 이루어진다. 따라서 응용 프로그램은 임의로 파일을 할당받아 조작하거나 저..
[알고리듬] 부분집합 생성
·
코딩테스트/알고리듬
1. 비트 마스킹#include #include using namespace std;int main() { vector arr = {1, 2, 3}; int n = arr.size(); // 부분집합의 모든 경우의 수 탐색 -> 0 ~ (2^n-1) for (int i = 0; i
[운영체제] 가상 메모리
·
컴퓨터 과학/운영체제
1. 물리 주소와 논리 주소CPU와 프로세스는 메모리의 하드웨어 상 실제 주소인 물리 주소가 아니라 프로세스마다 부여되는 0번지부터 시작되는 주소 체계인 논리 주소를 이용한다. 실제로 정보가 저장되어 있는 하드웨어 상의 메모리와 상호작용을 하기 위해서는 논리 주소와 물리 주소간의 변환이 이루어져야 한다.메모리 관리 장치(Memory Management Unit / MMU)는 CPU와 메모리 사이에 위치하며, CPU가 이해하는 논리 주소를 메모리가 이해하는 물리 주소로 변환하는 역할을 한다. 그렇다면 왜 굳이 CPU는 논리 주소 체계를 이용하는 걸까 ? 메모리에 적재되어있는 정보들이 시시각각 변하기 때문에 물리 주소를 이용하는 경우, 메모리의 정보가 바뀔 때마다 변경된 부분을 추적해서 기억해야 한다. 이는..
[운영체제] CPU 스케줄링
·
컴퓨터 과학/운영체제
용어 정리CPU 스케줄링: 운영체제가 CPU 자원을 배분하는 방법CPU 스케줄링 알고리즘: CPU 스케줄링의 절차CPU 스케줄러: CPU 스케줄링 알고리즘을 결정하고 수행하는 운영체제의 일부분CPU 스케줄링 대상: 실행의 문맥이 있다면 모두 스케줄링의 대상이다. 프로세스뿐만 아니라 스레드도 포함된다. CPU 활용률: 전체 CPU의 가동 시간 중 작업을 처리하는 시간의 비율CPU 버스트: 프로세스가 CPU를 이용하는 작업입출력 버스트: 입출력장치를 기다리는 작업선점형 스케줄링: 운영체제가 프로세스로부터 CPU 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링- CPU 자원을 골고루 배분할 수 있지만, 문맥 교환 과정에서 오버헤드가 발생비선점형 스케줄링: 프로세스가 종료되거나 대기 상태에 접어들..
[운영체제] 동기화와 교착 상태
·
컴퓨터 과학/운영체제
용어 정리공유 자원: 프로세스 혹은 스레드가 공유하는 자원ex) 메모리, 파일, 전역 변수, 입출력장치임계 구역 (Critical Section): 공유 자원에 접근하는 코드 중 동시에 실행했을 때 문제가 발생할 수 있는 코드 레이스 컨디션: 프로세스 혹은 스레드가 동시에 임계 구역의 코드를 실행하여 문제가 발생하는 상황 1. 동기화동기화 조건1. 실행 순서 제어: 프로세스 및 스레드를 올바른 순서로 실행2. 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스 및 스레드만 접근 1-1. 뮤텍스 락임계 구역에 접근하고자 한다면 반드시 lock을 acquire해야 하고,임계 구역에서의 작업이 끝났다면 lock을 release 해야 한다. pthread_mutex_t mutex;void* incre..
[언리얼엔진] Physics Asset
·
언리얼 엔진
1. Physics Asset의 역할가끔 3D 모델 파일을 언리얼엔진에 Import 해보면 Skeletal Mesh, Skeleton 이외에 "Physics Asset"도 같이 생성되는 것을 알 수 있는데요 ! Mesh의 Collision 영역을 정교하게 설정해주는 아주 고마운 녀석입니다. 이외에도 Bone 마다 질량과 물리 속성을 설정해줄 수 있기 때문에 자연스러운 래그돌, 물리 시뮬레이션이 가능하다고 해요. 2. Physics Asset (X) Physics Asset을 사용하지 않는 경우에는 따로 Sphere, Box, Capsule Collision을 추가해서 충돌을 인식할 수 있도록 해줘야 합니다. 이 경우에는 허공에 총을 쏴도 맞았다고 인식을 해서 몬스터에게 데미지가 들어가는 상황이 발생하겠죠..
[코딩테스트] 경우의 수 구하기
·
코딩테스트/알고리듬
1. 종류별 포함int main(){ // 입력 값 vector> v = { {"yellow_hat", "headgear"}, {"blue_sunglasses", "eyewear"}, {"green_turban", "headgear"} }; // 경우의 수 카운트 int resultCount = 1; // 각 종류별 의상 수 unordered_map myMap; // 종류별 의상 수 카운트 for(auto& a : v) { ++myMap[a.second]; } // 종류별 최소 1개 포함 공식 for(auto& a : myMap) { resultCount..
[게임잼] 스파르타 게임잼
·
게임잼
개요Q. 어떤 과정을 거쳐서 신청을 했나요 ?워낙 게임잼 행사에 참여하여 개발하는 것을 좋아하는 지라 이번에도 게임잼 공고가 올라오자마자 바로 신청을 하려고 했습니다. 우연의 일치로 이번에 참여한 부트캠프인 스파르타 코딩클럽에서 게임잼을 주관하고 있더라구요. 온라인으로 진행을 한다는 점에 공간적인 부담감은 없을 것 같아 주저없이 참여 신청을 했습니다. Q. 이번 게임잼이 처음이신가요 ? 이번 스파르타 게임잼이 저에게는 5번째 게임잼이었기 때문에, 나름 게임잼 행사의 요령 같은 게 있었어요. 게임잼의 주제는 "연합" 이었고 부푼 기대를 가지고 이번에는 어떤 기획들이 나올지 궁금해하며 기획자분들의 기획 설명을 경청했죠. 기획자분들이 대부분 게임잼 행사가 처음이라 그런지 개발 볼륨이 상당한 기획들이 많이 언급..