참... 저는 라즈베리 파이를 구입할 때 너무 운이 없었습니다. 막상 공구를 통해 겨우 구입했을 때는 좋았었는데.. 제가 사고 나서 바로 메모리가 512로 업데이트된 버전이 나오더군요. 그것도 같은 가격으로... 제가 산 건 256M이었고요.. 뭐 그거 가지고 열심히 가지고 놀았지만 메모리의 한계는 어떻게 극복할 수가 없는 듯 합니다. 다른 분들은 게임도 올리고 많이 하시는 거 같은데. 지금 제 라즈베리 파이로는 정말 하면서 인내심을 많이 기르게끔 만듭니다. 지금 위에 보시는게 Task Manager 인데 기본 램이 212M으로 잡혀있는 것이 보이실 겁니다. 재미있는게 지금 돌리고 있는 어플리케이션이 지금 화면상으로 연 Task Manager와 Xterminal 그리고 스크린샷을 찍게 해주는 scrot ..
이전 포스트에서 언급했던 것처럼 시스템 자원이 계속 입력만을 감시하는 낭비를 막기 위해서 interrupt라는 개념을 도입했다, 간단하게 말하면 프로세서의 귀를 막고 직접적인 간섭이 있지 않는 한은 관여하지 않게끔 하는 내용이다. 이밖에도 Exception이라는 비슷한 개념도 있는데 이 차이는 발생하는 주체가 다르다는 것이다. Interrupt는 외부 장치나 소프트웨어의 간섭으로 인해 프로세서가 관여하는 형식이기에 주체가 당연히 프로세서가 아닌 외부 장치이겠지만, Exception은 프로세서가 오류가 발생했을 때가 알아서 처리되는 동작이기에 주체는 프로세서가 된다. 아무튼 이런 걸 다루는 것들을 handler라고 하는데 보통은 프로세서가 관여하기 전의 상태를 담고 있어서 interrupt나 Excepti..
이틀동안 삽질하다가 드디어 키보드 입력까지 왔다. Mint OS가 키보드 입력을 받는 방식은 일단은 기다리고 있다가 스캔코드가 들어오는 대로 뿌려주는 방식이다. 이렇게 받아오는 값이 스캔 코드, 흔히 말하는 ASCII 코드가 되며, 커널로 전달될 때도 우리가 입력하는 값에 대한 스캔 코드가 넘어오기 때문에 그걸로 출력을 하기 위해서는 따로 테이블이 존재해야 한다. 그래서 키보드 상에 있는 자판 중 88개의 경우에 대해서 테이블을 작성한 후에 그 결과를 보는 중이다. 장 보면 알겠지만 bochs 창 아래에는 각 Lock 자판도 표현이 되어 있으며, 거기에 대한 LED도 가상으로나마 구현된다. 지금 위의 이미지는 NumLock이 켜져 있는 상태이다. 나머지도 각각에 대한 Lock키가 활성화 되어 있는 상태이..
앞에서도 계속 나오다시피 모든 동작은 메모리 주소에 따라서 수행되고 이때문에 메모리 관리 방식이 OS에서는 중요시 여겨지는 요소 중 하나다. 메모리 관리 방식은 크게 Segmentation 방식과 Paging 방식으로 나눌 수 있는데 Paging으로 구현시에는 같은 물리메모리라도 다른 인자를 연결해서 프로그램을 로드할 수 있기에 공간을 조금더 효율적으로 사용할 수 있다. Segmentation에서 영역을 나누기 위해 Descriptor라는 개념을 사용하고 이를 구분하기 위해서 DescriptorTable이 있던 것처럼 Paging에서도 주소를 결합하기 위해서 Page Directory와 Page Table이 필요하다. 지금은 메모리를 통해서 프로그램을 로드하는 것이 아니기에 단순히 생성하고 초기화하는 과..
OS 구동시 거의 모든 동작이 메모리 주소를 찾아가는 것으로 시작한다. 물론 작은 OS일 경우에는 크기가 상관 없겠지만 윈도우나 리눅스같은 큰 OS일 경우에는 메모리 크기도 중요한 요소로 작용한다. 그래서 초기 구동시 메모리크기를 체크하는 단계가 필요하다. 현재 사용하는 에뮬레이터는 bochs이고 이에 대한 config 파일은 /root/.bochsrc에 저장되어 있다. 여기서 맨 마지막 MEGS라고 되어있는 부분이 메모리 크기를 지정해주는 부분이다. 이 사이즈를 조절하면서 검사가 제대로 이뤄지는지를 확인할 수 있다.
PC의 운영 자체는 어셈블리어로 동작하지만, 사용자의 편의를 위해서는 C언어로 구현할 수 있는 커널이 있어야 한다. 실질적으로 OS가 올라가기 위해서는 커널이 IA-32e 모드로 전환되어야 하며, 그렇기 위해서는 커널 이미지를 올려야 하는데 이 커널 이미지 자체가 초기화가 안되어 있는 상태(즉, 이미지 사이사이에 구멍이 뻥뻥 뚫려있는 상태)이기에 잘못된 동작을 사전에 막기 위해서 미리 메모리 공간을 0으로 초기화시켜줘야 한다.
저 같은 경우는 연구실 컴퓨터는 gentoo를 설치해서 사용하고 노트북에서는 윈도우를 쓰고 있습니다. 그런데 언제나 연구실에만 있을 수 없으니까 뭔가 밖에서도 쓸 수 있는 방법이 있을까 찾아보니까 Xming이라는게 있더군요. 이걸 통해서 원격으로 본체에 접속할 수 있다네요. 그래서 하는 방법을 조금 정리해봤습니다.원래 기존에는 PuTTY를 활용해서 SSH(SecureSHell)을 통한 터미널 접속이 되는 거였지만 이 Xming을 사용하면 GUI로도 어플리케이션을 실행시킬 수 있다는게 특징입니다. 가령 이런거지요. 우선 sshd를 사용하는 것이기에 원격접속할 컴퓨터에서 설정을 조금 바꿔줘야 합니다. 이 sshd에 대한 설정은 sshd_config에서 할 수 있습니다. 이중에서 중간에 보면 X11Forwar..
- Total
- Today
- Yesterday
- Policy Gradient
- bias
- 인공지능
- Kinect SDK
- 강화학습
- Off-policy
- processing
- 한빛미디어
- Kinect for windows
- Windows Phone 7
- Expression Blend 4
- Distribution
- dynamic programming
- reward
- TensorFlow Lite
- Kinect
- arduino
- Offline RL
- Variance
- DepthStream
- SketchFlow
- 파이썬
- End-To-End
- Pipeline
- 딥러닝
- ColorStream
- RL
- windows 8
- Gan
- PowerPoint
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |