재로그
nil}" alt="Preview Image" >

세그멘테이션 오류

세그멘테이션 오류 크래프톤 정글에서 C관련 과제들을 할 때마다 단골로 등장하던 오류이다. 놀랍게도 해당 오류가 발생할 때 큰 의의를 두지 않았고 단지 ‘내가 무언가 잘못하고 있구나’ 정도로 생각해왔다. 개요 세그멘테이션 오류는 프로그램이 권한이 없는 메모리 공간에 접근을 시도할 때, 또는 잘못된 접근 방식으로 (예: READ-ONLY공간에 WRI...

nil}" alt="Preview Image" >

인터럽트

인터럽트 인터럽트는 프로세서가 외부 장치 또는 소프트웨어로부터 발생하는 예외상황 또는 요청에 대해 빠르게 대응할 수 있도록 해준다. 개념 하나의 프로세서는 한 특정 순간에 하나의 일(프로세스)밖에 처리를 못 하기 때문에 처리하고 있는 일이 있는 와중에 우선 순위가 높은 요청이 있으면 이에 대응할 수 있는 방안이 있어야 한다. 인터럽트는 프로세서...

nil}" alt="Preview Image" >

원자적 연산

원자적 연산 지난 주 내내 핀토스 프로젝트를 하면서 종종 나왔던 용어가 있는데, 바로 Atomic Operation(원자적 연산 또는 원자 조작)이란 것이었다. 핀토스 깃북(일종의 설명서..?)은 영어로 되어있는데, 영어가 편해 어지간한 용어는 어원이나 문맥에 따라 유추가 가능했지만, 원자적 연산이라니…쪼갤 수 없는 연산? 무슨 뜻인지 감이 좀처럼 ...

Preview Image

핀토스: 프로젝트 1 - Threads (2)

우선순위 스케줄링 우선선순위 스케줄링이란, 쓰레드 별로 설정된 우선도(Priority)에 따라 자원 할당이 되는 스케줄링 기법이다. 이번 과제의 구현에 앞서 항상 염두해야 할 사항 두 가지를 미리 정의했다. 더 높은 우선순위의 쓰레드가 ready_list에 들어오면 그 즉시 양보해야 한다. 실행중인 쓰레드의 우선순위는 언제든 바꿀 수 있지...

Preview Image

핀토스: 프로젝트 1 - Threads (1)

핀토스 7주차까지 어찌어찌 생존해 드디어 전산학 과정의 꽃이라고 불리는 운영체제 주차로 넘어왔다. 크래프톤 정글이 갖는 다른 교육들과의 차이점, 핀토스. 이번엔 정말로 나와 우리 팀의 힘으로 해보고 싶었고, 마침 팀원들의 생각도 같았기에 정답 코드는 물론이고, 직접 제공되지 않은 외부 영상 또는 다른 블로그를 가능한 참고하지 않고 진행해보기로 했다...

nil}" alt="Preview Image" >

프록시

프록시 프록시란? 인터넷 접속을 할 때, 빠른 액세스나 안전한 통신등을 확보하기 위해 사용되는 중계 서버를 프록시 서버라고 한다. 프록시를 사용하지 않고 서버에 요청을 보내면 다음과 같이 서버에 IP 주소가 노출된다. 출처:Upguard 프록시 서버는 클라이언트와 서버 사이에 위치하며, 클라이언트의 요청을 대신 받아 서버에 전달하고, 서버의 ...

nil}" alt="Preview Image" >

[백준] 18870 좌표 압축

문제 설명 문제 링크 문제를 처음 확인해보면 설명이 다소 불친절하다고 느껴지지만, 아래의 예제 입출력을 보고 나면 무엇을 해야할지가 꽤 명확해진다. -10^9^ 부터 10^9^까지 있는 수직선 상에 있는 점들을 가장 작은 수부터 큰 수까지 0부터 N까지 나열하라는 문제다. 여기서, 입력값에 같은 수가 나온다면 해당 수는 새로 나열되어도 같...

nil}" alt="Preview Image" >

[백준] 2156 포도주 시식

문제 설명 문제 링크 문제를 살펴보면, 연속으로 놓은 포도주를 2번까지만 마실 수 있고, 연이은 두개를 마시는 경우에는 무조건 하나를 건너뛰어야 한다는 점을 알 수 있다. 문제 풀이 동적 계획법을 사용하여 풀 수 있다. 점화식만 잘 세우면 크게 어렵지 않은 문제이기 때문에 점화식을 잘 세우고 Bottom-Up 방식으로 cache를 채워서 최...