본문 바로가기

전체 글21

운영체제 - 연속 메모리 할당과 단편화 프로그램이 실행되기 위해서는 디스크에서 메모리로 로드해와야 한다. 이때 운영체제는 한정된 자원 내에서 프로세스들에게 메모리를 효율적으로 할당할 필요가 있다. 연속 메모리 할당은 초창기에 메모리를 할당하는 방식이었다. 연속 메모리 할당 하나의 프로세스를 연속적인 물리 메모리 공간에 할당하는 기법이다. 즉, 가상 주소 공간에 할당된 프로세스가 물리 메모리 공간에 "하나의 덩어리"로 로드된다. 연속 할당은 크게 고정 분할 방식과 가변 분할 방식으로 나뉜다. 1) 고정 분할 방식 (fixed partition allocation) 메모리 공간을 미리 고정된 크기로 분할한 후 프로세스를 할당하는 방식이다. 이때 분할되는 크기는 다양할 수 있으며, 분할된 공간이 영구적으로 고정되기에 메모리에 올릴 수 있는 프로그램.. 2024. 2. 19.
c++ - 동적 배열 구현 (vector 구현) 제공되는 자료 구조를 직접 구현해보면 그 동작 방식을 더 잘 이해할 수 있다. 그래서 선형 자료구조를 각각 구현해보고자 한다. 이번 포스트에서는 동적 배열을 구현하는 과정에 대해 정리해보고자 한다. 동적 배열 (vector)동적 배열 자체에 대한 설명은 다음 포스트를 참고하면 된다. 2024.02.07 - [c++/기초] - c++ 기초 - 벡터 (vector) c++ 기초 - 벡터 (vector)STL? Standard Template Library의 약자로 미리 구현된 자료구조와 알고리즘들을 템플릿으로 제공하는 라이브러리이다. STL은 크게 알고리즘, 컨테이너, 함수자, 반복자(iterator)로 구성되어 있다. 컨테이dodongs-development-farm.tistory.com vector 자체.. 2024. 2. 18.
운영체제 - 데드락 (Deadlock, 교착 상태) 데드락 (Deadlock, 교착 상태) 프로세스를 실행하기 위해서는 자원이 필요하다. 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못하고 무한히 다음 자원을 기다리게 되는 상태를 "데드락"이라고 부른다. 데드락이 왜 발생하는지, 어떻게 해결할 수 있을지 아이디어를 주는 고전적인 문제인 식사하는 철학자 문제를 먼저 살펴보자. 식사하는 철학자 문제 원형 테이블에 철학자가 5명이 앉아있고, 철학자들 사이에는 포크가 존재한다. 음식을 먹기 위해서는 포크 2개가 꼭 필요하다. 여기서 각 용어는 다음을 비유한 것이다. 철학자 = 프로세스, 스레드 포크 = 실행에 필요한 자원 식사 = 실행 철학자들은 다음의 과정을 진행한다. 1. 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어든다. 2. 계속 생각을 하다.. 2024. 2. 18.
운영체제 - 동기화 프로세스들은 동시에 실행되며 서로 협력하고 영향을 주고 받는다. 이 과정에서 자원의 일관성을 보장해야 하기에 프로세스를 동기화할 필요가 있다. 실행의 문맥을 가지는 모든 대상은 동기화의 대상이 되기에 스레드도 동기화 대상이 된다. 동기화 프로세스들의 수행 시기를 맞추는 것을 동기화라고 한다. 프로세스의 동기화는 크게 두 가지를 의미한다. 1) 실행 순서 제어 프로세스를 올바른 순서대로 실행하기 위한 동기화 2) 상호 배제 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하는 동기화 예를 들어, 공동의 목적을 위해 동시에 수행되는 프로세스가 있다고 가정해보자. (e.g. 워드 프로세서 프로그램 => 맞춤법 검사 프로세스, 입력 내용을 화면에 출력하는 프로세스 등) 프로세스들의 올바른 수행을 위.. 2024. 2. 16.
c++ 기초 - deque deque "double-ended queue"의 약자로 맨 앞의 삽입과 삭제에서 비용이 많이 들었던 vector와 달리 양방향(앞,뒤) 사용을 편리하게 만든 컨테이너이다. 선언 1) 헤더 파일 및 네임스페이스 정의 #include using namespace std; // 편리성 위해 사용 2) 다양한 방식의 선언 및 초기화 1. 빈 deque deque 변수이름 ; 2. 지정한 크기에 모든 요소 0으로 초기화된 deque 생성 deque 변수이름(크기); 3. 지정한 크기에 모든 요소 기본값으로 초기화된 deque 생성 deque 변수이름(크기, 기본값); 4. 복사할 벡터와 동일한 크기와 데이터를 가지는 벡터 생성 deque 변수이름(복사할deque이름) 동작 원리 vector의 경우 할당된 cap.. 2024. 2. 8.
unity - UI Toolkit uss 사용하기 UI Toolkit에서 스타일을 설정하는 uss에 대해 다뤄보고자 한다. UI Builder 창에서는 왼쪽 상단에 기본적으로 위치해있다 (StyleSheets). 사용 목적 1. 공동 스타일 적용 element들이 공동으로 들고 있는 스타일(ex. font 크기나 색상 등)이 있다. 이때 매번 각 element 들의 스타일을 하나씩 수정하는 것이 아니라 uss 파일에 정의한 스타일 클래스를 통해 일괄적으로 적용할 수 있다. 2. hierarchy에서 style 수정이 불가능한 경우 접근해서 수정 추가로 radio button과 같이 일부 VisualElement들의 경우 Inspector 창에서 직접 접근해 style 수정이 불가능한 경우가 있다. 이 경우 스타일 클래스로 해당 요소의 스타일에 적용할 수.. 2024. 2. 8.