Chapter 1: A Tour of Computer Systems
1.1 Information Is Bits + Context #include <stdio.h> int main() { printf("hello, world\n"); return 0; } Text files 위 hello.c 파일처럼 ASCII 문자만을 포함한 파일 Binary...
1.1 Information Is Bits + Context #include <stdio.h> int main() { printf("hello, world\n"); return 0; } Text files 위 hello.c 파일처럼 ASCII 문자만을 포함한 파일 Binary...
Work Stealing Go는 work stealing strategy 알고리즘을 사용하여 여러 작업(고루틴)을 여러 OS thread에 할당한다. Work stealing strategy는 다음과 같다. 공유되는 중앙 자원은 critical section이 되므로 하나의 프로세서에 하나의 큐(deque)를 할당하는 게 낫다. Go의 fork-j...
Error Propagation 에러는 다음의 중요한 정보를 포함해야 한다. 무슨 일이 발생했는지 언제, 어디서 발생했는지 사용자에게 제공되는 적절한 메세지 사용자가 더 많은 정보를 얻을 방법 이러한 정보를 포함하지 않은 날것의 에러를 버그라 할 수 있다. Timeouts and Cancellation 타임아웃을 도입하기 좋...
Confinement 동시성 코드에서 데이터를 안전하게 사용하기 위한 방법 Ad hoc confinement data := make([]int, 4) // data는 loopData에서만 접근하자고 약속하자. loopData := func(handleData chan<- int) { defer close(handleData) for i...
Goroutines Concurrent하게 동작하는 함수 앞서 말했듯 parallel하게 동작하지 않을 수 있음에 주의 OS 스레드가 아니다. 그린 스레드도 아니다. Coroutine으로 알려진 높은 레벨의 추상화다. Coroutine: Suspension과 reentry가 가능하지만 i...
The Difference Between Concurrency and Parallelism Concurrency 코드의 속성 Concurrent하게 작성한 코드가 parallel하게 동작하지 않을 수 있다. Parallelism 동작하는 프로그램의 속성 프로그램이 p...
Moore’s Law, Web Scale, and the Mess We’re In 2012년 즈음까지는 Moore’s Law가 맞아들었지만, 그 이후부터는 상황이 달라졌다. 많은 회사들이 computing power를 향상시키기 위해 노력하였고, 그 결과 멀티코어 프로세서가 탄생하였다. 문제를 해결했다고 생각했지만 새로운 한...
경성대학교 양희재 교수님의 운영체제 30강 경성대학교 양희재 교수님의 운영체제 31강 디스크 스케줄링(Disk Scheduling) 디스크 접근 시간 = Seek time + rotational delay + transfer time 탐색 시간(seek time)이 가장 크다. 다중 프로그래밍 환경 ...
경성대학교 양희재 교수님의 운영체제 28강 경성대학교 양희재 교수님의 운영체제 29강 파일 시스템 컴퓨터 시스템 자원 관리 CPU: 프로세스 관리 CPU 스케쥴링, 프로세스 동기화 주기억장치: 메인 메모리 관리 페이...
경성대학교 양희재 교수님의 운영체제 27강 프레임 할당(Allocation of Frames) 쓰레싱(Thrashing) CPU utilization vs. Degree of multiprogramming(메모리에 올라간 프로세스 개수) 일반적으로 프로세스 개수 증가 ⇒ CPU 이용률 증가 ...