* 이 글은 Coursera에서 제공되는 HW/SW Interface 강의를 요약한 내용입니다. 지난 포스트에서 fork의 동작에 대해서 간단하게 소개했다. 그런데 그때도 이야기 했던 것처럼 fork는 단순히 현재 process의 copy만 새롭게 만드는 형태였다. 그래서 fork만 수행하면 process는 다음과 같이 생성된다. 지금의 예시는 만약 /usr/bin에 있는 ls 명령 실행시킬때 fork-exec 의 형태를 표현한 것이다. 이렇게 같은 stack, heap, data, code를 가진 child process가 생성된다. 그런데 계속 반복적으로 나오는 내용이긴 하지만 process는 program을 실행시키는 instance이기 때문에 code의 path가 /usr/bin/bash로 정해진..
* 이 글은 coursera에서 진행되는 HW/SW Interface의 강의 내용을 요약한 글입니다. 지난 포스트를 통해서 Process 가 뭔지 소개하고 process 가 concurrent 하게 실행될때 발생하는 context switching을 다뤘다. 일단 process 가 하는 일은 알았고, 프로그램이 실행되기 위해서는 instance인 process가 필요하다는 건 알았는데 이제 이걸 어떻게 생성할 지가 궁금해진다. 우선 linux system을 가정할 때 process 생성과정은 fork-exec 구조를 따른다.(물론 windows에서는 이런 형태가 아니다.) 그리고 이를 위해서 syscall인 fork()와 execve() 를 사용한다. 어떤 인자를 주느냐에 따라서 execvp()가 될 수..
* 이 글은 coursera에서 제공되는 HW/SW Interface 강의를 요약한 내용입니다. Process란 뭘까? 이 개념에 접근하기 전에 우리가 실행하길 원하는 프로그램들이 컴퓨터 내에서 어떻게 동작하는지를 살펴봐야 한다. 프로그램은 일종의 instruction을 모아둔 집합체이다. 우리가 프로그램을 만들기 위해서 high level language로 구현하는 코드들 역시 컴파일러를 거치게 되면 list of instruction set이 되게 된다. 그런데 단순히 이값이 변환되기만 해서는 프로그램이 실행되지 않는다. 정말로 프로그램을 실행하길 원한다면 해당 instruction들을 memory에 load를 시켜야한다. 막연하게 올려야 된다가 아니고 이렇게 프로그램과 CPU에서 Memory까지 실..
* 이 글은 coursera에 공개되어 있는 강의인 HW/SW Interface의 강의 내용을 요약한 글입니다. cpu의 역할을 뭘까? 당연히 사용자가 명령하는 것을 정해진 주기마다 수행한다. 그런데 사용자의 명령은 내부의 어떤 과정을 통해서 intruction이라는 개념으로 변환이 되고 이걸 읽고 실행하는 과정을 거치게 된다. 우리가 컴퓨터를 켜는 순간부터 끌때까지 말이다. 보통 이런 과정을 control flow라고 한다. 예를 들어서 linux kernel 내부에서 network 기능이 수행될때의 그림은 다음과 같이 표현된다. 아마 cs를 전공하는 사람이라면 초창기에 열심히 control flow 를 그리면서 프로그램을 설계하는 방법을 익혔을 것이다. 앞에 나온 그림처럼 cpu는 일정시간마다 나열된..
방학중에 들었던 과목중에 인상깊었던 과목이 있어서 한번 소개해보고자 한다. 지금이야 컴퓨터를 전공하고 있긴 하지만 내 원래 전공은 전자공학이다. 사실 어렸을때는 막연하게 cpu를 설계하는게 꿈이었고, cpu는 수많은 transistor로 구성되어 있으니까 그걸 하려면 전자공학을 전공해야 되겠구나 싶어서 진학했고, 원하는걸 배우지 못했다(...) 아무튼 그래도 cpu를 구성하는 gate transistor가 어떻게 동작하고, 이 게 어떤 원리를 가지고 입출력을 내보내는지를 전자회로 시간에 수도없이 배웠던거 같다. 이제 와서 느끼는 거지만, 그래도 그런 배움의 과정이 어떻게 보면 지금 배우는 컴퓨터 과학과 관련도 상당히 있고, 잘 선택한거 같다. 덕분에 전자쪽 내용을 바탕으로 컴퓨터가 어떻게 동작할까에 대해..
지금 학교에서 다루는 연구주제가 workload pattern에 따른 효과적인 power management technique를 구현하는 것이다. 그중에서도 manycore에 초점을 맞춰서 보고 있다. 사실 개념자체는 매우 간단하다. 근본적인 개념은 단순하게 일을 열심히 하는 core한테는 그만큼 computation power를 많이 주는 것이고, 그동안 idle상태의 core는 clockgating 같은 기능을 써서 power를 덜 주게끔 하자는 것이다. 이게 곧 DVFS (Dynamic Voltage/Frequence Scaling) 이 추구하는 궁극적인 목적이 되겠다. 특히 manycore Architecture에서는 그만큼 core가 소비하는 power가 크기도 하고, 최근 부각되고 있는 gre..
언제부터 Linux Boot Sequence에 대해서 정리해야겠다고 생각만 하고 있었는데, 이번 기회에 복습하는 겸해서 한번 정리해보고자 한다. 참고로 현재 edX에서 Introduction to Linux라는 이름으로 강의가 진행되고 있으니까 평소에 Linux에 대해서 관심을 가졌던 사람한테는 좋은 기회가 아닐까 싶다. 우선 대부분의 사람은 컴퓨터 전원버튼을 켜고 잠시후에 운영체제의 화면이 뜨는 것을 확인할 것이다. 여기까지 걸리는데 대략 30초에서 1분정도의 시간이 걸린다. 그런데 사실 컴퓨터의 boot process는 이 30초에서 1분이라는 짧은 시간안에 이뤄진다. 우선 처음으로 부팅이 되었을 때, BIOS(Basic Input / Output System)가 실행되게 된다. 이름에도 들어가 있는..
- Total
- Today
- Yesterday
- End-To-End
- SketchFlow
- ColorStream
- 강화학습
- RL
- bias
- windows 8
- Gan
- TensorFlow Lite
- PowerPoint
- DepthStream
- arduino
- 딥러닝
- Pipeline
- Windows Phone 7
- Offline RL
- Kinect SDK
- Expression Blend 4
- Python
- dynamic programming
- 한빛미디어
- reward
- Distribution
- Variance
- Policy Gradient
- Kinect for windows
- processing
- Off-policy
- 파이썬
- Kinect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |