[pintos] Alarm System Call 목차 [pintos] Alarm System Call 과제 목표 Busy Waiting 구현 살펴보기 Sleep / Wake up 아이디어 구현 결과과제 목표 운영체제는 프로세스를 잠시 재웠다가 일정 시간이 지나면 다시 깨우는 기능이 있습니다. 이 기능을 알람(Alarm)이라고 부릅니다. Pintos의 알람의 기능은 기존에 Busy Waiting 방식을 이용해서 구현되어 있습니다. 이 방법을 3시간 낮잠자기에 비유하면 아래와 같습니다. 낮잠 자기 시작 -> 1분후 깸 -> 1분 지났네..? -> 다시 자야지 -> 1분후 깸 -> 2분 지났네..? -> 다시 자야지 -> … -> 1분 후 깸 -> 2시간 59분 지났네..? -> 다시 자야지 -> 1분 후 깸..
[Code jam] C번 문제 (2016 Round1 A) 목차 [구글 Codejam] C번 문제 (2016 Round1 A) 문제 요약 입력 예시 생각 흐름 솔루션 코드 이 문제의 이름은 BFFs이고 2016 Round1 A의 C번 문제이다. 문제 링크 : https://code.google.com/codejam/contest/4304486/dashboard#s=p2 문제 요약 어린이집에 N명의 어린이들이 있다. 이 어린이집에서는 원으로 둘러 앉아서 하는 활동을 한다. 이때 어린이 왼쪽 또는 오른쪽에 자기가 생각하는 베스트 프랜드가 앉아있어야한다. 베스트 프렌드는 반드시 한명이다. 불행히도 철수는 영희가 자신의 베스트 프랜드라고 생각하더라도 영희는 철수를 베스트 프랜드라고 생각하지 않을 수 있다. 각 ..
Square Root of Permutation 목차 Square Root of Permutation 문제 설명 Solution Code 문제 설명 문제 : 코드포스 Educational Round 4, E번, Square Root of Permutation길이 n의 순열이란 1부터 n까지의 정수를 한 번씩만 포함하는 배열이다. 예를 들어 q = [4, 5, 1, 2, 3]는 순열이다. 순열의 제곱 p란 순열 q에 대해서 p[i] = q[q[i]]를 의미한다. 예를 들어 q = [4, 5, 1, 2, 3] 일 때 p[1] = q[q[1]] = q[4] = 2 p[2] = q[q[2]] = q[5] = 3 p[3] = q[q[3]] = q[1] = 4 p[4] = q[q[4]] = q[2] = 5 p[5]..
[기하]외적을 이용해서 선분과 선분의 교차점 구하기 목차 [기하]외적을 이용해서 선분과 선분의 교차점 구하기 직선과 직선의 교차점 선분과 선분의 교차점 선분과 선분의 교차여부 판별 References 이 글은 포스팅 [기하]외적을 이용한 두 벡터의 상대적인 방향 판별에 설명 되어있는 배경지식을 전제로합니다. 또 이 글은 평면에서의 선분과 선분의 교차점에 대해 설명합니다. 계산 기하 문제에서 선분은 기하를 구성하는 기본 요소이기 때문에 선분의 교차점을 구하는 것은 기하문제를 풀 때 매우 자주 등장합니다.그러나 선분과 선분의 교차점을 구하는 것은 쉽지 않습니다. 교차점을 구하는 것은 고등학교1학년 수학책에 나오는 내용으로 개념 자체는 어렵지 않지만 모든 경우에 대한 일반해를 프로그래밍적으로 구하는 것이 까다..
[운영체제] 프로세스가 뭐지? 목차 [운영체제] 프로세스가 뭐지? 개요 프로세스란 단어를 본적있나요? 프로세스란? 프로그램과 뭐가 다르지? 어떻게 여러 개의 프로세스가 동시에 실행될 수 있을까? 프로세스의 구성 프로세스는 어떻게 구성되어 있을까? 프로세스가 접근 할 수 있는 메모리 공간 프로세스 관리 프로세스는 어떻게 관리될까? References 개요 프로세스란 단어를 본적있나요? 아래 사진은 안드로이드 설정창의 어플리케이션 메뉴를 클릭했을 때 나타나는 화면입니다. 프로세스란 단어가 등장하는데 프로그램이란 단어가 있는데 왜 굳이 프로세스라고 하는지 궁금하지 않으셨나요? 저는 안드로이드와 서버 개발을 해봤는데 프로세스란 단어는 개발을 할 때 정말 자주 만나게 됩니다. 그 때마다 대충 뭐 실행중인걸 프로세..
[리눅스]ctags 사용법 [리눅스]ctags 사용법 ctags 란? ctags의 장점 ctags 설치 ctags 생성 ctags 사용법 tags 파일 열기 사용법 vim 에디터와 연동하기 ctags 명령어 ctags 란? ctags 란, 프로그래밍 소스코드의 태그 (전역변수 선언, 함수 정의, 매크로 선언)들의 Database(tags file)를 생성하는 Unix 명령어 즉 쉽게 말해, 함수 및 변수의 위치를 쉽게 인식 할 수 있는 인덱스를 만드는 유틸리티 입니다.ctags 를 이용하면 소스코드 내에서 함수나 변수가 선언된 곳으로 이동할 수 있기 때문에 Vim 및 emacs 와 같은 에디터에서 특정 심벌을 찾고자 할 때 주로 사용합니다. ctags의 장점 ctags를 사용하면 소스 코드를 분석하기가 ..
[기하]외적을 이용한 두 벡터의 상대적인 방향 판별 [기하]외적을 이용한 두 벡터의 상대적인 방향 판별 [기하]외적을 이용한 두 벡터의 상대적인 방향 판별 두 벡터의 방향 판별이란? 벡터의 외적 정의 외적의 성분 표현 이차원에서 벡터의 외적 벡터의 방향성 판단 구현 어디에 활용되나? References 두 벡터의 방향 판별이란? 위 그림의 두 벡터 와 에 대해 는 로 부터 반시계 방향으로 약 90도 방향에 있습니다. 위 그림의 두 벡터 와 에 대해 는 로 부터 시계방향으로으로 약 115도 방향에 있습니다. 이렇게 두 벡터에 대해 한 벡터가 다른 벡터로 부터 시계 방향 또는 반시계 방향으로 몇도에 있는지 파악하는 것을 두 벡터의 방향 판별이라고 합니다. 계산기하 알고리즘에서 이러한 두 벡터 사이의 상대적인..
인간은 어떻게 컴퓨터라는 복잡한 기계를 만들 수 있었을까? 인간은 어떻게 컴퓨터라는 복잡한 기계를 만들 수 있었을까? 인간은 어떻게 컴퓨터라는 복잡한 기계를 만들 수 있었을까? 개요 수학적 개념의 탄생 조지 불(George Boole) 부울 대수(Boolean Algebra) 디지털 논리 설계 CPU 만들기 2비트 ALU 64비트 ALU 추상화 64비트 ALU 만들기 Full Adder 64비트 Adder 정리 개요 산업혁명을 통해 인간은 인간의 힘을 대신하는 기계를 만들었습니다. 그 다음에 인류는 인간의 머리(계산, 논리)를 대신하는 기계인 컴퓨터를 만들게 됩니다. 컴퓨터는 우리가 만든 가장 복잡한 도구이며 기계입니다. 또한 컴퓨터는 이제 우리 생활과 도저히 땔 수 없는 존재입니다. 컴퓨터가 어떻게 만..
- Total
- Today
- Yesterday