일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 혼공스
- 리뷰리뷰
- 혼자공부하는C언어
- 네트워크
- 혼공C
- 혼공단5기
- 컴퓨터그래픽스
- 혼공
- 책리뷰
- 벌칸
- 혼자공부하는네트워크
- 파이썬
- 혼공컴운
- C++
- 불칸
- tutorial
- 한빛미디어
- 혼공단
- 혼공머신
- vulkan
- 나는리뷰어다
- 자바스크립트
- 제이펍
- 혼공학습단
- 운영체제
- 머신러닝
- 데이터분석
- 혼공네트
- 혼공S
- 딥러닝
- Today
- Total
목록서평 (82)
Scientia Conditorium
[책리뷰] 우리가 사랑한 한국 PC게임 - 사진으로 읽는 한국 게임의 역사 '당신이 읽고픈 책이 있는데 아무도 쓴 적이 없다면 그 책은 당신이 써야 한다.' 노벨문학상을 수상한 토니 모리슨의 말이다.이 문구는 조기현 저자 서문에 그대로 인용되어 있다. 이 책은 제목 그대로 약 1992년부터 2004년까지 한국에서 개발하고 발매된 PC 게임들을 정리하였다. 책 구성은 간단하다. 당시 나왔던 인기 게임 메인 사진과 함꼐 간단한 설명으로 구성되었다. 이 책이 단순히 '90년대에 이런 게임이 있었고 어떤 게임이다' 라고만 서술되어 있었다면 사전과 비슷한 느낌이 되었을 것이다. 내가 가장 마음에 들었던 것은 인터뷰 부분이다. 게임 4~10개 정도 소개를 해주고 이후 그 게임을 만들었던 대표 개발자 한 분의 인터뷰..
[기본 미션] p.400의 확인 문제 1번 풀고 인증하기 최초 적합(first fit) : 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식 최적 적합(best fit) : 운영체제가 빈 공간을 모두 검색해본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치하는 방식 최악 적합(worst fit) : 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식 외부 단편화 : 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상 [선택 미션] Ch.14(14-3) 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조..
[기본 미션] p.363의 확인 문제 1번 풀고 인증하기 뮤텍스 (mutex) : 멀티스레드에 의해 공유 데이터가 동시에 접근되지 않도록 보호하는데 사용할 수 있는 동기화 프리미티브 세마포(semaphore) : 뮤텍스 락은 하나의 공유 자원에 접근하는 프로세스를 상정한 방식이라면 세마포는 공유 자원이 여러 개 있는 상황에서도 적용이 가능한 동기화 도구 [선택 미션] Ch.12(12-1) 임계 구역, 상호 배제 개념을 정리하기 공유 자원(shared resource) : 동시에 실행되는 프로세스들이 공동으로 이용하는 변수, 파일 장치 등의 자원 임계 구역(critical section) : 공유 자원에 접근하는 코드 중 동시에 실행하면 문제가 발생하는 코드 영역 상호 배제(mutual exclustion..
[기본 미션] p.304의 확인 문제 1번 풀고 인증하기 프로세스 상태 5단계 생성 상태 프로세스를 생성 중인 상태. 메모리에 적재되어 PCB를 할당받은 상태. 생성 상태를 거쳐 실행할 준비가 완료된 프로세스 는곧바로 실행되지 않고 준비 상태가 되어 CPU의 할당을 기다림 준비 상태 당장이라도 CPU를 할당받아 실행할 수 있지만, 아직 자신의 차례가 아니기에 기다리고 있는 상태 실행 상태 CPU를 할당받아 실행 중인 상태. 실행 상태인 프로세스는 할당된 일정 시간 동안만 CPU를 사용할 수 있음. 프로세스가 할당된 시간을 모두 사용하거나, 타이머 인터럽트가 발생하거나, 실행 도중 입출력장치를 사용하여 입출력 장치의 작업이 끝날 때까지 기다려야 한다면 다시 준비 상태가 됨. 대기 상태 입출력장치의 작업을 ..
[기본 미션] p.185의 확인 문제 3번, p.205의 확인 문제 1번 풀고 인증하기 [선택 미션] Ch.07(07-2) RAID의 정의와 종류를 간단히 정리해 보기 RAID : Redundant Array of Inexpensive/Independent Disk 복수 배열 저가/독립 디스크 데이터의 안전성 혹은 높은 성능을 위해 여러 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 기술 RAID 0는 데이터를 단순히 병렬로 분산하여 저장하고, RAID 1은 완전히 복사본을 만듬 RAID 4는 패리티를 저장한 장치를 따로 두는 방식이고, RAID 5는 패리티를 분산하여 저장하는 방식 RAID 6는 서로 다른 두 개의 패리티를 두는 방식
[기본 미션] p.125의 확인 문제 2번, p.155의 확인 문제 4번 풀고 인증하기 프로그램 카운터(PC, program Counter) : 메모리에서가져올 명령어의 주소, 즉 메모리에서 읽어 들일 명령어의 주소를 저정. 프로그램 카운터를 명렁어 포인터(IP, Instruction Pointer)라고 부르는 CPU도 있음(인텔의 x86 계열의 CPU) 명령어 레지스터(IR, Instruction Register) : 해석할 명령어, 즉 방금 메모리에서 읽어 들인 명령어를 저장하는 레지스터. 제어장치는 명령어 레지스터 속 명령어를 받아들이고 이를 해석한 뒤 제어 신호를 내보냄 범용 레지스터(General purpose register) : 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터. 메모리 버..
[기본 미션] p.51의 확인 문제 3번, p.65의 확인 문제 3번 풀고 인증하기 1. 프로그램이 실행되려면 반드시 '메모리'에 저장되어 있어야 합니다. 이 문장이 중요한 이유는 운영체제와 연관되어서 그렇습니다. 흔히들 사용하고 있는 Window 윈도우 운영체제 역시 프로그램의 하나 입니다. 따라서 컴퓨터 전원 버튼을 누르면 가장 먼저 운영체제 프로그램이 메모리에 적재됩니다. 책 261쪽을 보면 '운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역(Kernel space)이라는 공간에 따로 적재되어 실행됩니다' 라고 서술되어있습니다. 물론 세부적으로는 BIOS → 부트로드 → 커널영역 → 초기화 프로세스 순서로 동작합니다. 2. 2의 보수는 현재 부호있는 정수를 표..
[책리뷰] 이것이 자료구조+알고리즘이다 with C언어 이것이 시리즈 중 자료구조와 알고리즘이 합친 책이 등장했다. 예전에 'C언어로 쉽게 배우는 자료구조' 책이 유명했지만, 그보다는 이 책이 훨씬 더 깔끔하고 좋다. 제목에 with C언어를 붙여서 혼동을 최소화 시킨 것도 마음에 들었다. 자바와 파이썬 왕국에서 C언어로 책을 쓰다니! 라는 사람들이 있을 것 같지만, 자료구조만큼은 메모리 관리가 가능한 언어로 학습해야된다는 것이 내 지론이다. 이유는 어떠한 언어를 쓰던 컴퓨터 내부적으로는 비슷하게 동작하는데, 특히 자료구조의 경우 메모리 구조를 알고 있어야 이해하기 쉽기 때문이다. 따라서 C언어를 통해 메모리 관리를 직접 해보면서 자료구조의 동작 원리를 이해하는 것이 좋다. 이 부분에 대해서는 홍정모 박..
[책리뷰] 똑똑한 코드 작성을 위한 실전 알고리즘(Learning Arlgorithms) 학부 과정에서 알고리즘 수업을 수강했거나 기본적인 알고리즘을 알고 있는 이후에 보면 좋은 책이다. 여러 알고리즘을 소개하기 보다는 대표적으로 많이 사용하고 널리 알려진 알고리즘들을 조금 더 심도있게 다루고 있는 책이라고 생각하면 된다. 책에서 다루는 알고리즘으로는아래와 같다. 알고리즘 분석(시간복잡도, 공간복잡도, 성능 비교 방법) 해싱(키, 해시함수, 연결 리스트, 동적 해시 테이블, 완벽한 해싱) 힙(최대 이진 힙, 배열로 이진 힙 구성, 엔트리 이동의 구현) 정렬(교환, 선택, 삽입, 재귀, 병합, 퀵, 힙, 팀) 이진 트리(이진 탐색 트리, 탐색, 제거, 순회, 성능 분석, 자가 균형 이진 트리) 그래프(모델..
[책리뷰] 전문가를 위한 C C++의 교과서였던 '전문가를 위한 C++'에 이어서 C 역시 탄생하였다. C언어의 정신은 C99 Rationale에서 다음과 같이 묘사하고 있다. 프로그래머를 믿어라(Trust the programmer) 프로그래머가 작업을 못하게 방해하지 마라(Don't prevent the programmer from doing what needs to be done) 언어를 작고 간단하게 유지하라(Kepp the language samll and simple) 명령을 실행하는 방법을 하나만 제공하라(Provide only one way to do an operation) 호환성은 장담할 수 없더라도 빨리 작동하게 만들어라(Make it fast, even if it is not gua..