전체보기 238

[Algorithm]동기화 기법(Synchronization)

동기화(Synchronization)http://en.wikipedia.org/wiki/Synchronization - 멀티프로그래밍(두개 이상의 쓰레드가 같은 데이터를 공유하며 실행되고 있을때)에서 에러(충돌,교착)가 발생하지 않고 조화롭게 실행되도록 하는 일련의 작업 - 이용되는 이론 : 세마포어(Semaphore), 임계구역(Critical Section), 스핀락(SpinLock), 상호배제(Mutual Exclusion, Mutex), 이벤트, Metered Section 세마포어 (Semaphore)http://ko.wikipedia.org/wiki/%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4 - 멀티프로그래밍에서 공유자원에 대한 동시 접근을 제한하는 방법 - 세마포어 S..

[Kernel : Linux]리눅스 커널 소스

리눅스 커널 소스 아카이브 : http://www.kernel.org리눅스 커널 소스 웹에서 보기 : http://lxr.linux.no 리눅스에서 커널 소스 다운로드 wget이 설치되어 있어야합니다.'apt-get install wget'로 설치해줍니다. 커널 2.4.32 다운로드 'wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.32.tar.bz2' 커널 2.6.14 다운로드 'wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2' 커널 소스 압축 풀기'tar xvfj linux-2.4.32.tar.bz2'

Programming/Kernel 2012.11.18

[Java]스톱워치를 구현하는 방법

스톱워치를 구현함에 있어서 스레드의 sleep함수를 이용해서 시간을 카운트하도록 설계를 했었다. 하지만 이와 같은 방법을 쓰게될 경우, 스레드틑 CPU로부터 할당 받은 시간만큼만 실행되게 됨으로 정밀하게 유효한 값을 가지기가 힘들다. 그러면 CPU로부터 유효한 시간을 유지하면서 시간을 재는 초시계를 구현하려면 어떻게 해야하는가....?? 생각외로 답은 간단했다. 답은 시스템 시간에 있었다. 스레드를 이용하여 이정 시간단위로 시스템 시간을 가져온다. 시간을 재기 시작한 시스템시간을 기록해 놨다가 스레드가 매번 시스템 시간을 가져와 그 차이로 스톱워치의 시간을 갱신하는 방법이다. CPU할당시간이 밀리더라도 시스템 시간을 가져와 갱신하기 때문에 스레드 sleep함수를 이용하여 시간을 갱신하는 것보다 더 정밀한..

Programming/Java 2012.11.14

우분투 커스터마이징 - 강분도

우분투 한국커뮤니티 국제적으로 승인받은 팀 -런치패드에 주소가 있고 -포럼이 있고 -메일링리스트가 있고 위키가 있으면 우분투 커뮤니티로 승인을 해준다.(2009.2) sudo apt-get install build-essential 터미널에서 이 명령어 하나로 개발환경을 구축가능하다. 우분투는 데비안 패키지를 다 가져다 사용한다. 커스터마이징 배포판으로 인정 받으려면 가장 중요한 것 – 저장소를 따로 운영해야한다. 가상환경과 UCK 가상환경과USB메모리는 배포판 테스트가 용이하다. Chroot, 버추얼 박스, VMware, USB메모리 Ubuntu Customization Kit http://uck.sourceforge.net/ 설치 명령어 : sudo apt-get install uck 기본 실행 : ..

차량용 네트워크 - 박재호

차량에 마이크로 프로세서 100~200여개 탑재 차량은 움직이는 병렬 컴퓨터 사람의 목숨이 달려있을수록 보수적인 경향이 크다. 비행기 -> 고속철도 -> 차량 기계적인 부품이 없다는 것은 결함이 줄어든다는 것을 의미한다. 유지보수가 줄어든다. 전자, 전기적인 구성요서면 안정선, 부피 등의 모든 면에서 효과를 얻는다. 증기기관에 의해서 인간이 힘을 통제할 수 있게 되었다. 전기의 장점 : 에너지의 생산지와 소비지를 이원화 시켜버렸다. 차량의 무게가 줄어들수록 차량의 효효율이 좋아진다. 기계적 부품대신에 전기, 전자적 부품을 사용하면 경량화가 된다. 과거의 비행기는 유압식으로 동작했다. 현대의 비행기는 전기, 전자적으로 동작한다. 요즘 차량들은 스캐너장비를 MCU에 연결하여 고장의 원인을 손쉽게 알아낸다. ..

멀티코어와 리눅스 스케줄러 - 정영준

멀티코어 – 무어의 법칙 ARM – 옥타코어 2015~16년 GPGPU롤 활용하려고 한다. 클럭 수를 낮추고 분산해서 돌리면 전력면에서 효율적인 효과가 있다. 서버 시장에서도 전력 소모량이 너무 많아서 ARM 서버의 시대가 될거라고 얘기한다. 기존의 서버보다 ARM서버를 사용하게 되면 1/8수준으로 줄일 수 있다. 64비트 우분투도 올려서 ARM 서버를 사용하려고 하고 있다. 멀티코어의 연구흐름 싱글코어의 시대 -> 멀티코어(호모 지니어스)의 시대 -> Heterogeneous System 멀티코어 기술의 한계 새로운 하드웨어가 나와도 소프트웨어 수정없는 성능 개선이 어렵다. 주요 연구 전력소모 장벽문제 CPU가 3GHz를 넘어서고 전력 소모가 더욱 많아진다. 메모리 장벽문제 메모리 처리율 성장속도(매년..

[Algorithm]패러럴 퀵 소트

대용량 데이터를 처리해야 하는 툴을 만들다 보니 데이터 처리 관련 알고리즘이나 성능 좋은 방법 등을 많이 고민하고 공부하게 된다. 이 방법들 중 데이터 처리에 있어 많은 비용을 지불해야 하는 정렬에 대하여 이야기 하고 싶다. 우리나라 사람들 성질이 급해서 그런지 뭐든 빨리 나오길 바란다. 정렬도 예외가 아니다. 얼마 안 되는 데이터를 정렬한다면 로직이 좋던 나쁘던 별반 차이나지 않지만 데이터가 커지면 이 차이는 무시 못 할 정도로 벌어진다. 그리고 데이터 처리에 있어 정렬은 아주 큰 부분은 차지하기 때문에 할 수 있다면 할 수 있는 만큼은 개선을 해야 할 부분이다. (어떤 사람은 십수년이 넘는 기간동안 정렬만 연구해 솔루션을 내 놓는 경우도 있으며, 난 이 사람 마음을 십분 이해한다. 정렬은 그럴 만한 ..