본문 바로가기

Daniel's Blog

Thread의 Def 와 Coding :: 멀티태스킹 - 하나의 CPU가 여러 개의 프로세스를 교대로 수행하는 것입니다. 윈도우에서는 웹 서핑을 하면서 영화를 보기도 하고 메신저를 하기도 합니다. 이렇게 컴퓨터 한 대에서 여러가지 작업을 할 수 있는 것을 멀티태스킹이라고 합니다. 이러한 작업이 가능하게 하기 위해서 CPU는 시간을 분할하여 각 프로그램에 제어권을 한 번씩 나누어 주면서 CPU를 적절하게 사용하는 것입니다. 멀티태스킹은 운영체제에서 제공해주는 기능이므로 우리가 프로그래밍할 수 있는 부분이 아닙니다. :: 멀티스레딩 - 하나의 CPU가 여러 개의 스레드를 교대로 수행하는 것입니다. 자바 프로그램은 기본적으로 main()메서드가 수행되면서 하나의 스레드가 동작하게 됩니다. 하지만 자바에서는 main()메서드에 의한 스레드 이외의 .. 더보기
Atomic Operation 이란? Atomic Operation의 사전적 의미기능적으로 분할할 수 없거나 분할되지 않도록 보증된 조작. 원자와 같이 분할할 수 없다는 것을 비유하여 이렇게 부른다. 원자 조작은 끼어들기가 불가능하며, 만일 중지되면 동작 개시 직전의 상태로 시스템을 복귀시킬 것을 보증하는 복구(백업과 복원) 기능이 제공된다. Atomic Operation의 프로그래밍언어적 의미Atomic Operation이 필요한 부분은 멀티스레드 프로그램에서 공유 자원들에 대해 여러 스레드가 서로 동시에 액세스 하는 경쟁상태(race Condition)을 막시 위한 하나의 방법이다. 쉽게 말에 동기화를 위한 하나의 방법이다. ---------------------------------------------------------------.. 더보기
대칭형 다중 처리 (SMP) 대칭형 다중 처리 또는 SMP(symmetric multiprocessing)는 두 개 또는 그 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처이다. 현재 사용되는 대부분의 다중 프로세서 시스템은 SMP 아키텍처를 따르고 있다. SMP 시스템은, 작업을 위한 데이터가 메모리의 어느 위치에 있는지 상관없이 작업할 수 있도록 프로세서에게 허용한다. 운영체제의 지원이 있다면, SMP 시스템은 부하의 효율적 분배를 위해 프로세서간 작업 스케줄링을 쉽게 조절할 수 있다. 그러나 메모리는 프로세서보다 느리다. 단일 프로세서라도 메모리로부터 읽는 작업에 상당한 시간을 소비한다. SMP는 이를 더욱 악화시키는데, 한 번에 한 개의 프로세서만이 동일한 메모리에 접근 가능하기 때문이다. .. 더보기
유저모드와 커널모드 OS는 수퍼바이저 모드, 유저 모드, OS 모드, 통신 모드의 4가지 모드가 있다. 유사하게, 프로세스는 CPU의 유저모드와 커널모드에서 동작할 수 있다.그래서 OS의 유저 모드와 CPU의 유저 모드가 혼동될 수 있다.여기서 내가 알고 싶은건 CPU의 유저 모드임. 붉은 색 부분이 커널모드, 초록색 부분이 유저 모드를 보여준다.(win7에서 관리자로 로그인한 경우임) 유저 모드 - 임의로 실행시킨 특정 프로그램 (win32 API로 만든)을 말한다. - MS 프린터, MS 워드 등 - 유저 모드는 사용이 제한적이다. - 윈도우는 프로세서의 메모리 보호 서비스를 사용하여 악성 프로그램이 다른 시스템을 방해하는 것을 예방한다. - 다시 말해, 사용자는 커널에 의해 사용되는 메모리 영역에는 접근할 수 없다. .. 더보기
[Linux] 리눅스 vi 편집기 명령어 윈도우 서버만 사용해 오다가 리눅스 서버를 보니 모르는 것 뿐이다.ㅠ 일단 vi 그냥 에디터 플러스 같은 거로 편집하면 안 되나... ㅋㅋ 이런 생각만 든다.. vi 명령어 할때만다 검색해서 찾아 볼려니 힘들어서 과감하게 블로그에 포스팅~~~ ==========================================================================================vi 주요 명령어 정리========================================================================================== *vi의 세가지 모드 [명령/입력/시리행] 1. 명령모드 : 파일을 편집하는 모드(명령모드 진입은 i, a, o)2. 입력모.. 더보기
[Linux] Linux Command 퍼미션(권한)이란?OwnerGroupOtherOwner와 Group은 파일소유자자신과 자신이 속한그룹. Other은 제3자, 웹사이트 방문객은 제3자로 nobody로 취급.rwxrwxrwxr은 파일 읽기(4), w는 파일 쓰기(2), x는 파일 실행(1)755파일소유자는 그것을 읽고 쓰고 실행시킬 수 있지만, 제3자는 읽고 실행만 시킬 수 있다.777제3자도 쓰기 권한이 주어진다.*.html *.cgi, *.pl *.txt등의 파일은 업로드시 반드시 ascii로 하고 나머지 그림(*.gif *.jpg)이나 자바 애플릿(*.class), 실행파일(*.exe *.zip *.rar)등은 binary mode로 업로드 할 것. 리눅스 기본명령어 명령어사 용 법login사용자 인증과정리눅스 시스템은 기본적으로 m.. 더보기
[Linux] valgrind를 이용한 디버깅 (Linux Debugging) valgrind (밸그린드) 에 대한 사용법을 간단히 정리합니다. http://valgrind.org (공식 사이트) 밸그린드는 x86, AMD64 아키텍쳐 환경의 메모리 릭을 탐지하고 프로파일링 하는 리눅스 메모리 디버깅 툴입니다. (위키디피아에서 어원의 유래가 북구 유럽 신화의 Valhalla 로 가는 주 입구에서 비롯됬다고 하네요. -_- )보통 메모리 할당과 해제, 초기화되지 않은 메모리, 배열의 오버플로우, 포인터 해제 등과 같은 문제들을 잡아주지요.(올레!~) 자 어쨌든 설치를 하고, $ sudo apt-get install valgrind 사용법을 봅시다. 유용해 보이는 옵션(제 기준 -_-)은 빨간색 밑줄로 표시했습니다. 간단한 예를 보도록 하죠. 실행 예는 다음과 같습니다. $ valgr.. 더보기
[Linux] putty 프로그램 putty는 telnet 용 접속 에뮬에트의 일종입니다.윈도 DOS 창에서 telnet 명령을 주면 putty와 비슷한 작업을 할 수 있는 것이죠. telnet은 telnet Server를 운영하고 있는 컴퓨터에 원격 접속하기 위한 방식입니다.즉, telnet Server를 운영하고 있는 컴퓨터의 주소를 알아야 하고,그 컴퓨터 관리자에게 ID와 password를 할당 받아야만 접속 권한이 주어 지는 것입니다. telnet은 Window Server 계열에서 Service하는 기능이 들어 있고,전통적으로 UNIX 운영체제에서 기본적으로 운영되고 있는 서비스 입니다.UNIX의 영향을 많이 받은 LINUX에서도 당연히 telnet Server를 운영합니다. telnet 형태의 접속은 컴퓨터의 사용면에서 많은 .. 더보기
[Linux] make 명령어 안될경우 ./configure --prefix=/usr/local/xmms && make && make install이렇게 설치경로를 변경 더보기
Telnet (텔넷) 텔넷.tele network의 준말. 멀리 떨어진 컴퓨터에 연결해 이쪽 컴퓨터를 그쪽에 연결된 터미널로 만들어 주는 인터넷 표준 프로토콜이다. 흔히 컴퓨터 통신을 할 때 쓰는 이야기 등과 같은 터미널 에뮬레이터를 생각하면 된다. 다만 텔넷은 인터넷을 통해서 연결된다는 점만이 다르다. 실제로 하이텔이나 천리안 등 PC통신도 인터넷에 연결하면 텔넷으로 들어갈 수 있다. 텔넷 접속을 하기 위해서는 일반 통신프로그램이나 텔넷 전용 프로그램이 필요하다. 더보기