12. 프로세스 동기화줌으로 회의를 하다 보면 좀 불편할 때가 있다.두 명 이상이 동시에 말할 때다.그래서 손을 먼저 들고 말할 순서를 정하면 된다.하지만 사실 그것도 불편하다.프로세스도 동시에 실행되고 싶을 때가 있다.하지만 동시에 실행할 프로세스들이 같은 자원을 쓴다면 문제가 된다.줌 회의로 비유하자면, 공간과 시간(자원)을 같이 쓰고 싶은 두 사람이 있을 때의 문제이다.12.1 동기화란아주 간단한 예시로, 같은 파일을 두 프로세스가 동시에 수정하는 경우 문제가 생길 수 있다.얼핏 생각하면 그게 왜 문제인지 와닿지 않을 수 있다.사람 기준이 아니라 컴퓨터의 기준으로 생각해야 한다.예를 들어, 파일의 값을 읽어서 1 증가시켜서 저장하려면 아래의 과정이 필요할 것이다. (틀릴 수 있음)프로세스가 OS를 ..
수학 책에는 많은 정리(theorem)들이 나온다. 이 정리를 대하는 두 가지 방법이 있다. 하나는 정리의 증명을 한 줄 한 줄 따라가면서 왜 그 정리가 참인지 이해하는 것이다. 이 과정을 통해 정리가 참임을 “안심하고 믿을 수” 있게 된다. 다른 하나는 왜 그 정리가 참일 “수밖에” 없는지 자기만의 구조와 직관을 만들어보는 것이다. 어쨌든 책에서 거짓말을 하지는 않았을 테니, 그 정리를 참으로 받아들이면 어떤 일이 일어나는지 상상해볼 수 있다. 두 방법 모두 이해의 획득을 목표로 하고 있지만, 획득의 과정과 결과물의 질감은 꽤 다르다. 적어도 내가 알기론, 많은 전공 수학 책이 정리-증명-정리-증명-(가끔 따름정리)-연습문제의 패턴이 반복되게 적혀 있으며, 상상은 독자의 영역으로 남겨둔다. 간혹 그러한..
11. CPU 스케줄링화장실 줄을 생각해보자.배운 사람이라면 아무리 급해도 온 순서대로 들어가야 한다.그런데 정말 급한 사람이 왔다! 곧 나올 것 같다! 더 이상 버틸 수가 없다!"아 뭐 누군 안 급한줄 아나!"라고 싸움이 나면 그야말로 똥판... 아니 개판이 될 것이다.그래서 관리자가 필요하다. 관리자의 역할은 누구를 먼저 들여보낼지 정하는 것이다.프로세스는 CPU를 만나야 본인의 소임을 다할 수 있다.그런데 대기 줄이 너무 길다!언제 누구를 먼저 들여보낼지 OS가 결정을 해야 한다.개중에는 더 급한 프로세스가 있을지도 모른다. 따라서 운영의 묘가 필요하다.이것을 CPU 스케줄링이라고 부른다.11.1 CPU 스케줄링 개요간단하게, 먼저 들어온 것을 먼저 실행시키면 안될까?그렇게 간단한 문제였으면 책의 ..
10. 프로세스와 스레드본격적으로 OS를 알아본다.일단 파일이었던 프로그램이 돌아가는 프로그램이 된 프로세스를 알아야 한다.그리고 프로세스는 여러 개가 돌아갈 수 있다.어떻게? 스레드도 알아보자.10.1 프로세스 개요지난 장에서 얘기했듯이, 보조기억장치에 있는 것은 파일일 뿐이다.파일은 그 자체로 실행 중인 무언가가 아니다.실행 상태가 되려면 메모리에 올라가서 정보의 흐름을 타야 한다.작업 관리자의 프로세스 탭에 나오는 것들이 바로 이것이다.윈도우 10 기준, 프로세스는 앱과 백그라운드 프로세스로 분리된다.앱은 사용자에게 보이는 프로세스, 백그라운드는 안 보이는 프로세스다.10.1.1 프로세스 제어 블록CPU는 바쁘다! 모든 프로세스를 동시에 실행할 수 없다.따라서 줄을 서서 기다려야 한다.OS가 이 줄..
9. 운영체제 시작하기지금까지 알아본 것들은 모두 하드웨어였다.CPU는 ALU, 제어장치, 레지스터, 캐시로 구성된다.그 외에 메모리, 보조기억장치, 입출력장치들이 있다.이것들이 주고받는 정보에 대해서도 알아봤다.하지만 전기를 넣는다고 알아서 정보를 주고받지 않는다.사람이 사무실에 앉아 있다고 해서 일을 하는 것은 아니듯이 말이다.그럼 뭣이 필요한가?지능이 필요하다!9.1 운영체제를 알아야 하는 이유사람의 뇌는 단순히 하드웨어가 아니다.뉴런들이 전기 신호를 통해 정보를 주고 받는 복잡한 기계이다!전기 신호를 어떤 기준으로 발생시키고, 어떻게 해석할 것인가?해석한 결과를 어떻게 이용할 것인가?이 모든 것에 필요한 것을 우리는 '지적 능력' 또는 '지능'이라고 부른다.컴퓨터의 부품은 하드웨어이다.이것들이 잘..
수학을 공부하다 보면 신기한 것들을 많이 본다. 신기한 공식이기도 하고, 개념이기도 하고, 세계관이기도 하다.그 중 몇 개를 나만의 위시리스트로 만들어두었다. 언젠가 꼭 알고 싶은 것들이다. 1. 행렬식의 대수학적 정의 이해하기 (해결)• 이해했다(고 생각한다.)• 수학하는 만화의 선형대수학 번외편 - 넓이 이야기에서 도움을 많이 받았다. 2. 5차 이상 방정식의 불가해성 이해하기 (갈루아 이론 이해하기)• 수학의 즐거움 대수학 스터디에서 진행 중 3. 귀류법 및 공허참 이해하기• 고민의 흔적을 다른 글에 써놨지만 여전히 오리무중 4. 테일러 전개, 수렴반경, 해석적 함수 이해하기• 김홍종 교수님 책에서 딱 가려준 부분을 긁어주시는 듯 하여 보는 중 5. 복소해석적 함수 이해하기• 수학의 즐거움..
8. 입출력장치아...꼭 알아야 할까.꼭 이렇게까지 알아야 할까.정말 이렇게까지 자세히 알아야 할까.그런데 모르고 넘어가자니 찝찝하다.현재 시간 밤 1시 18분... 족장님 보고 계시죠?출처: https://www.madtimes.org/news/articleView.html?idxno=187678.1 장치 컨트롤러와 장치 드라이버내가(CPU가) 사무실에서(메인보드 위에서) 일한다.내가 사장이면 좋겠다만 (좋은게 맞을까)사장이 아니므로 사장에게 보고를 해야 한다.사장은 입력 장치를 통해 지시사항을 보내고나는 출력 장치를 통해 보고를 한다.입력 장치는 키보드, 마우스 등이다.출력 장치는 모니터, 프린터, 스피커 등이다.그런데 도대체 어떻게 동작할까?내가 누르는 키가 어떻게 정보가 되어 메인보드, 시스템 버..
7. 보조기억장치보조기억장치는 딱히 볼 게 있을까? 싶었다.하지만 HDD와 플래시를 본다고 하니 급 궁금해졌다.RAID도 본다고 하니 더 궁금해졌다.레이드 보스와의 연관성은 모르겠다.7.1 다양한 보조기억장치내가 9살 쯤 학교에서 처음 만졌던 컴퓨터는 보조기억장치가 없었다.그냥 누르니까 뭔가 나오는 신기한 장치였다.대충 이렇게 생겼었다.출처: https://uxdesign.cc/what-i-learned-from-a-30-year-old-video-game-console-9eafa9abf9da컴퓨터 학원에서 만졌던 컴퓨터는 5.25인치 플로피 디스크를 넣을 수 있었다.디스크를 넣어야 MS-DOS가 구동되었던 걸로 기억한다.왜 이렇게 불편할까, 영구 저장 가능한 저장장치는 왜 없는걸까, 라고 불편해하고 있..
6. 메모리와 캐시 메모리사람이 일을 하려면 사람, 책상, 책장, 공간이 필요하다.컴퓨터가 일을 하려면 CPU, 메모리, 보조기억장치, 메인보드가 필요하다.지난 4, 5장에서 CPU에 대해서 알아보았다.이번 장에서는 메모리에 대해 알아본다.컴퓨터에서 돌아가는 프로그램은 보조기억장치에 저장되어 있지만,보조기억장치는 저장고일 뿐, 그곳에서 실제로 프로그램이 실행되지는 않는다.보조기억장치의 프로그램은 메모리에 올라와야 실행될 수 있다.6.1 RAM의 특징과 종류메모리는 책상이다.CPU가 퇴근하면(전원을 내리면) 책상은 초기화된다(램이 초기화된다).그래서 하던 작업을 이어서 하려면 절전모드 또는 최대절전모드를 이용해야 한다.출처: https://velog.io/@yeobi01/혼자-공부하는-컴퓨터구조보조기억장치..
재밌는 article이 있어서 요약해봤습니다.원문은 arxiv에 올라온 I'll finish it this week and other lies입니다. • 포닥, 대학원생, 학부생 몇 명이 모여 프로젝트를 진행했음• 주제: 이번 주에 마치기로 한 일을 정말로 이번 주에 마치는가?• 559개 task에 대해 소요 기간, 작업 시간(active working hours)의 예상값과 실제값을 비교• 결론 1: 최악은 코딩과 글쓰기, 예상보다 1.5배 걸림• 결론 2: 포닥이 상대적으로 시간 예상을 잘 함• 결론 3: 시간이 지날수록 시간 예상을 아주 조금 더 잘하게 됨• 아래 8가지 카테고리의 task를 대상으로 진행 - 코딩 - 글쓰기 - 읽기 - 관리 업무 (회의 잡기 등) - 발표 준비 - 서..