1. UNIX 0: 모니터 모드(OS 코드 수행) -> kernel mode (특권 명령까지 가능)구현에 따라 레지스터일 수도, 회로 내의 물리적 비트가 될 수도 있다.사용자 프로그램의 잘못된 수행
자... 이제부터 말 하려던 본론의 서두다. Project 1에서부터 다뤄지는 인터럽트를 알아본다.아래는 하드웨어적인 컴퓨터의 구조이다.CPU가 운영체제에게 넘어가는 경우는 interrupt, exception 두 경우가 있다. 프로세서는 보통 예외(exception)
하드웨어적인 측면에서 :컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛.CPU, GPU와 같은 중앙처리장치를 일컫는다.폰노이만 아키텍쳐에 의해 만들어졌다면, 적어도 하나 이상의 ALU(Arithmetic Logic Unit)와 레지스터(Register)를 내장하고 있어
큰 메모리를 시스템으로부터 얻어오는 것으로 시작. 리눅스의 경우 brk/sbrk 가 메모리 할당. sbrk : space break 함수로, 힙 크기를 늘이거나 줄이는 함수다. 커널의 brk 포인터(힙의 맨 끝을 가리키는 포인터)에 incr만큼 크기를
PROJECT 1: THREADS (2023 4/26 수요일 밤까지) - 1주PROJECT 2: USER PROGRAMS (2023 5/8 월요일 밤까지) - 1.5주이번 주차가 첫 주차보다 내용이 훨씬 많다고 느꼈다... SYSCALL의 개념과 fork, wait,
PROJECT 1: THREADS\_ (2023 4/26 수요일 밤까지) - 1주PROJECT 2: USER PROGRAMS (2023 5/8 월요일 밤까지) - 1.5주동일 프로그램들의 전 기수 선배들이 당시 적었던 회고록들을 열심히 열람했다. 눈에 띄었던 내용 중
레드-블랙 트리의 삽입은 단순 이진 탐색 트리에서 하는 것과 동일하나, 새로 삽입되는 노드의 색은 무조건 붉은색인 것으로 시작한다. 삽입 연산을 들여다보기 전 rbtree의 속성 5가지를 정리하고 들어가자. 삽입 연산에서는 삽입으로 인한 속성이 깨지는 상황을 재조정한다
레드-블랙 트리 노드의 삭제 연산은 일반적인 이진 탐색 트리(BST)의 삭제 연산과 같다. 기본적으로 이진 탐색 트리에서 삭제를 수행할 때에는 왼쪽 서브트리에서의 최댓값이나, 오른쪽 서브트리에서의 최솟값을 삭제한 노드의 위치에 삽입한다. 다르게 말하면, successo
malloc()과 calloc()은 메모리 할당을 위한 함수입니다. 그러나 이 두 함수는 약간의 차이가 있습니다.할당된 메모리는 이전에 할당된 메모리의 내용과는 무관하며, 초기화되지 않습니다.즉, 할당된 메모리는 모두 0으로 설정됩니다.따라서, calloc() 함수는
절차지향언어는 프로그램을 일련의 절차나 순서로 구성하여 작성한다.프로그램의 기능을 수행하기 위해 데이터를 처리하는 방법에 중점을 두며, 각각의 함수나 서브루틴 등으로 나누어 작성한다. 대표적으로 C, Pascal, Fortran 등이 있다.절차지향언어는 개체를 순차적으
이진탐색트리는 이진트리의 일종으로서, 다음과 같은 조건을 만족해야 한다.왼쪽 서브트리의 모든 노드들은 부모 노드보다 작아야 한다.오른쪽 서브트리의 모든 노드들은 부모 노드보다 커야 한다.왼쪽과 오른쪽 서브트리도 이진탐색트리여야 한다.즉, 이진탐색트리는 이진트리의 일종으
도트연산자와 ( . ) 화살표연산자 ( -> ) 모두 접근이라는 의미로 사용된다. 처음부터 다루어보자.구조체란 여러 자료형이 모여 하나의 큰 사용자 정의 자료형을 구성한 것이다. 여기서 우리가 구조체를 정의한다는 것은 어떤 의미일까?바로 Stack 영역에 구조체의 크기
이진 트리 (binary tree) 이진트리는 모든 노드의 차수가 최대 2인 트리 구조를 말한다. 이진트리는 정렬되지 않은 데이터를 저장하고 탐색, 삽입, 삭제 등의 연산을 수행할 수 있으며, 시간복잡도는 경우에 따라 유동적일 수 있다. 일반적으로 O(n)이다.
C 언어에서 포인터 변수를 선언할 때, 포인터 변수의 타입 이름 앞에 '' 기호를 사용하여 선언할 수 있습니다. 이때 '' 기호가 타입 이름 앞에 붙으면 포인터 변수를 선언하는 것이고, 변수 이름 뒤에 붙으면 해당 포인터 변수가 가리키는 메모리 공간에 저장된 값을 참조
값 바꾸기의 공식과도 같은 대표적인 예제이다. C에서 배열 매개 변수는 항상 포인터로 처리됩니다. 따라서 다음 두 문장은 같은 의미를 갖습니다.위에서 \[]는 함수가 배열을 받고자 하고 있음을 분명히 하기 위해 사용됐지만, 아무 것도 변경하지는 않습니다. 사람들은 \[
매개 변수가 함수에 전달되면 함수에 전달되기 전에 모든 매개 변수의 값이 평가됩니다. 매개 변수 평가 순서는 무엇입니까? - 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로? 평가 순서가 왼쪽에서 오른쪽으로 정렬된 경우, 출력이 567이어야 합니다. 그러나 평가 순서가 오