본문 바로가기
  • AI (Artificial Intelligence)

Fundamental75

프로세스 스케줄러 4. 프로세스 스케줄링 가. 프로세스 스케줄링의 목적 - CPU 이용률을 극대화 하기 위해서 항상 어떤 프로세스가 실행되도록, 프로세스 사이에서 CPU를 교체 - CPU 스케줄러 : CPU에서 수행 가능한 여러 프로세스들 중에서 하나의 프로세스 선택 나. 스케줄링 큐 1) 작업 큐(Job Queue) : 시스템 안에 모든 프로세스 2) 준비완료 큐 ( Ready Queue) - main memory에 존재하며, 준비완료 상태에서 실행 대기 프로세스 - linked list, 각 프로세스PCB는 준비완료큐의 다음 프로세스 포인터 가르킴 3) 장치 큐(Device Queue) : I/O 장치의 동작을 대기하는 프로세스 리스트 다. 스케줄러 1) 장기 스케줄러 (작업 스케줄러) - 디스크 공간에 제출된 프로세.. 2014. 5. 29.
프로세스 스케줄러 & 프로세스 우선순위 □ 프로세스란? 프로세스란 실행 중인 프로그램을 의미한다. 윈도우 사용자가 특정 프로그램을 실행시키면 하드디스크에 저장된 프로그램이 메모리(RAM)에 올라오게 되고, 메모리에 올라온 프로그램은 CPU를 통해 연산되는데 하드디스크에서 메모리로 올라온 프로그램을 프로세스라고 한다. □ 프로세스 스케줄러 프로세스란 실행중인 프로그램이며, 프로세스를 실행하기위해서는 하나의 CPU(코어)가 필요하다고 하였으므로 하나의 프로세스를 실행하기 위해서는 하나의 CPU(코어)가 필요하다. 가장 이상적인 방법으로는 실행되는 프로세스 수 만큼 CPU(코어)를 가지고 있는 것이지만 이는 현실 적으로 불가능 하며, 실질적으로는 실행되는 프로세스의 수보다 CPU(코어)의 개수가 적다. 이를 해결하기 위해서는 프로세스 스케줄러가 필.. 2014. 5. 29.
웹기획 일정관리,업무관리 WBS 정의 및 이해 웹기획 일정관리,업무관리 WBS 정의 및 이해 1. WBS (Work Breakdown Structure) WBS는 프로젝트를 진행하는데 있어 업무사항들의 분류를 구분하여 분류 단위로 일정을 관리하기 위한 문서입니다. 국문으로 표현하자면 "작업분류체계" 정도로 불릴 수 있을 듯한데 통상 W.B.S라고 부릅니다. WBS는 기본적으로 그룹별 업무, 담당자, 일정, 완성서 정도의 내용들을 표현합니다. 2. WBS 작성하기 WBS를 작성하는데는 MS 프로젝트 프로그램을 활용해서 작성하면 효율적이겠지만 고객과 파일 공유, 작업자들과의 파일 공유시 많이 활용하는 범용적 프로그램이 아니기 때문에 저는 보통 엑셀을 활용해서 작성합니다. WBS 작성시 업무(TASK) 별로 정리하는 게 일반적인데 업무(TASK) 는 "분.. 2014. 5. 23.
Kohonen Network 기법(코호넨 네트워크) (데이터마이닝) 코호넨 네트워크는 데이터 군집화에 자주 이용되는 신경망 기법의 하나이다. k-means 군집화 기법과 차이점은 다음과 같다. 첫째, 군집 중심 및 입력데이터를 0과 1사이의 정규화된 값으로 사용한다. 둘째, 알고리즘을 수행하면서 새로운 군집 중심을 계산하는 바식에 약간의 차이가 있다. Algorithm Step1. 군집 수 k를 결정하고, 각 군집에 초기치 또는 군집 중심을 0~1사이의 값으로 할당한다. Step2. 0과1 사이로 정규화된 새로운 입력 데이터를 제시한다. Step3. 입력 데이터와 각 군집 중심사이의 거리를 계산한다. Step4. 거리가 최소인 군집 중심을 아래와 같이 새롭게 계산한다. (여기서 α는 0과 1사이의 학습 비율이다) Step5. 모든 데이터에 대해 Step2~Step4를 반.. 2014. 5. 12.
k-medoids 기법 : 대표 객체기반 기법 (데이터마이닝) 전에 알아본 k-means 기법은 극도로 큰 값(혹은 작은 값)이 데이터의 분포를 사실상 왜곡할 수 있기 때문에 이상치에 민감하다. 이를 위해 군집에서 객체들의 평균값을 취하는 대신에 군집에서 가장 중심에 위치한 객체인 medoid를 사용할 수 있다. k-medoids 군집화 알고리즘의 기초적인 방법은 각 군집에서 대표 객체(medoids)를 임의로 찾음으로써 n개의 객체 중에서 k개의 군집을 찾는 것이다. 남은 각각의 객체는 가장 비슷한 medoids에 군집된다. Step 1. n개의 객체 중 대표 객체(medoids)를 k개 지정한다. (n>k) Step 2. k개의 medoids를 지정 후, 나머지 객체를 유사성이 가장 높은 medoid에 배속한다. 여기서 유사성은 거리측도를 활용한다. Step 3.. 2014. 5. 12.
k-means 기법 (데이터마이닝) k-means 알고리즘은 n개의 객체들의 집합을 k개의 군집으로 분해한다. 군집 유사성은 군집에서 군집의 무게중심으로 볼 수 있는 객체들의 평균값을 측정한다. k-means 알고리즘이 진행되는 과정은 아래의 그림과 같다. Step 1. 군집 수 k를 결정하고, 각 군집에 초기치 또는 군집 중심을 1개씩 할당한다. Step 2. 모든 데이터를 가장 가까운 군집 중심에 배속시킨다. (유클리드 거리를 이용) Step 3. 각 군집에 배속된 데이터와 새로운 군집 중심사이의 거리가 최소가 되도록 새로운 군집 중심을 계산한다. Step 4. 군집 중심이 변화가 거의 없을 때까지 Step2와 Step3을 반복한다. R에 있는 iris 데이터를 활용하여 알고리즘을 직접 짜보았다. ### 군집중심으로 최소거리에 해당하는.. 2014. 5. 12.
Data Clustering * Clustering Overview. § 클러스터링 개념 ? > 밀접히 관련된 사물, 사람, 아이디어 들의 그룹을 찾는 기법. 즉 주어진 Data Set 내에서 유사항목을 가진 그룹을 검출 하는 것. > 올바른 답을 찾는 것이 아니고 데이터 집합내에서 구조를 발견하는데 목적이 있음. > 구분하려고 하는 각 class에 대한 아무런 지식이 없는 상태에서 분류(classify)하는 것이므로 자율학습 (Unsupervised Learning)에 해당한다. > sample에 대한 지식없이 similarity(유사도)에 근거하여 cluster들을 구분한다. § 클러스터링 ! > 패턴 공간에 주어진 유한 개의 패턴들이 서로 가깝게 모여서 무리를 이루고 있는 패턴 집합을 cluster(군집)라하고, 이 clust.. 2014. 5. 12.
set, list, map 네트워크 컬렉션 ? 자료, 정보의 모음 ASC DESC 정렬할때 오름이냐 내림이냐. Set 순서가 없도 중복이 허용되지 않는다. Set 계열인 HashSet의 객체를 생성한다. Set계열은 인터페이스 Set을 구현한 클래스 add, clear, size, remove메서드 object 타입으로 리턴 2014. 5. 9.
Network 용어정리 NID : Network Interface Device 2014. 4. 22.
루틴과 서브루틴 (routine and subroutine) routine and subroutine ; 루틴과 서브 루틴 컴퓨터 프로그래밍에서 루틴과 서브 루틴은 어떤 프로그램이 실행될 때 불려지거나 반복해서 사용되도록 만들어진 일련의 코드들을 지칭하는 용어이다. 이를 이용하면 프로그램을 더 짧으면서도 읽고 쓰기 쉽게 만들 수 있으며, 하나의 루틴이 다수의 프로그램에서 사용될 수 있어서 다른 프로그래머들이 코드를 다시 작성하지 않도록 해준다. 프로그램 로직의 주요 부분에서는 필요할 경우 공통 루틴으로 분기할 수 있으며, 해당 루틴의 작업이 완료되면 분기된 명령의 다음 명령으로 복귀한다. 어셈블러 언어에서는 매크로 명령어라 불리는 인터페이스를 가진 매크로 정의 부분에 변수의 입력을 필요로 하는 루틴이 코딩될 수 있다. 프로그래머는 루틴을 포함하거나 그 루틴으로 분.. 2014. 4. 16.
외래어 / 고유명사 표기 사전 번역을 하거나 문서를 작성할 시 외래어로 인해 고충을 겪게된다. 아래 링크하게 될 사이트에 가게되면, 명료한 한글화된 외래어를 확인할 수 있다. 정말이지 한글을 사랑하는 모습이 곳곳에 있는데.. 메뉴부터 코멘트의 디테일 까지 정성스럽다. 한가지 의문은 권루시안이라는 이 분이 순수하게 비영리를 목적으로 이렇게 하신거라면 정말 박수를 보내주고싶다. 나도 언젠가는 외지에서 컴퓨터를 알리는 전도사? 가 될테니깐.. 나눔의 즐거움을 아시는 분 사랑합니다^^ - 로샤스 - 링크 : http://www.ultrakasa.com/dictionaries/ 2014. 4. 16.
Gartner Hype Cycle 의 이해 Understanding Hype Cycle Gartner 에서는 특정 분야에 속한 다양한 기술들을 대상으로 시간의 흐름에 따라 특정 분야에 속한 기술의 관심도의 변화를 Hype Cycle 로 표현하고 있으며 이를 통해 기술 트랜드를 읽고 대응해 나갈 수 있도록 가이드를 해주고 있다. Gartner Hype Cycle 은 위와 같은 형태로 휘어져 있는 기본 그래프위에 기술의 관심도의 따라 다양한 기술들이 위치하게 되고, 아래와 같이 Hype Cycle 을 해석할 수 있다. 1. Technology trigger ( 태동기 ) 새로운 기술을 통해 첫번째 상품이 나오는 시기로 다양한 이벤트들이 발생되고 언론의 주목을 받는 시기의 기술들이 위치한다. 2. Peak of inflated expectations .. 2014. 4. 14.
Project Manager Project를 진행하는 동안 필요한 메모를 하는 곳 2014. 4. 9.
In-Line mode 위키백과, 우리 모두의 백과사전 IPS와 같은 보안장비는 기본적인 설계사상이 사전에 정의된 보안정책에 의해 특정한 트래픽을 허용, 차단, 변조, 모니터링 하는 등의 Action을 취하는 것이다. 따라서 보안장비를 설치하는 유형이 여러 가지 있을 수 있는데, 대표적으로 인라인 모드와 스니핑 모드(미러링)가 있다. 여기서 인라인모드란 네트워크 방화벽 구성과 동일하게 모든 트래픽이 해당 보안장비를 거쳐야만 목적지로 전송될 수 있도록 브릿지 형태의 네트워크를 구성하는 경우이다. 이때 보안 장비는 IP를 가지고 있지 않고 트래픽을 연결하는 브릿지 네트워크 형태로 보안장비를 지나가는 모든 트래픽을 control하여 감시하며 통과 시키기 전에 패킷을 분석하여 통과 시킬지 drop 할지를 결정한다. 다만 패킷의 흐름을.. 2014. 4. 1.
PF-RING을 사용한 Packet Capture Rate 향상 Linux의 기본 pcap library를 사용할 경우에는 100% packet capture를 할 수 없다. 해당 정보는 http://luca.ntop.org/Ring.pdf 로부터 확인할 수 있다. 따라서 capture rate를 높여주기 위한 방안 한가지인, PF-RING을 사용하는 방식을 알아보자. 일단, svn을 사용해서 PF-Ring을 받아와야만 한다. 다음 명령으로 받아오도록 하자. #svn co https://svn.ntop.org/svn/ntop/trunk/PF-RING 로 받아올 수 있다. PF-RING을 받아오게 되면, pf-ring을 사용하도록 수정된 pcap, libpfring, example code인 pcount 디렉토리가 생성되는데, 일단 libpfring 디렉토리로 이동을 .. 2014. 3. 19.
PF_RING 을 이용한 pcap 성능 향상 PF_RING 은 네트웍 디바이스에서 수신한 패킷을 user space로 빠르게 전달할 수 있는 패킷 캡쳐를 위한 소켓이다. 이를 사용하면 pcap 라이브러리의 성능을 크게 향상시킬 수 있다. 참고 사이트 : http://www.ntop.org/PF_RING.html 참고 논문 : http://luca.ntop.org/Ring.pdf PF_RING 소켓의 아키텍쳐는 다음 그림과 같다. 논문에서는 리눅스 커널 2.6.1 에 NAPI 드라이버를 사용하였을 경우 PF_RING 을 사용하지 않았을 경우와 사용하였을 경우의 성능을 비교하고 있는데, 64 byte 패킷을 사용하여 테스트 하였을 때 전자는 2.5%의 캡쳐율을 보이지만 후자의 경우 75.7%의 캡쳐율을 보인다. 또한 1500 byte 패킷을 사용하였을.. 2014. 3. 19.
가상화의 형태 - 하이퍼바이저[Hypervisor] 하이퍼바이저[Hypervisor] 프로세서나 메모리와 같은 다양한 컴퓨터 자원에 서로 다른 각종 운영 체제(OS)의 접근 방법을 통제하는 얇은 계층의 소프트웨어, 다수의 OS를 하나의 컴퓨터 시스템에서 가동할 수 있게 하는 소프트웨어로 중앙 처리 장치(CPU)와 OS 사이에 일종의 중간웨어로 사용되며 ,하나의 컴퓨터에서 서로 다른 OS를 사용하는 가상 컴퓨터를 만들 수 있는 효과적인 가상화 엔진이다. 하이퍼바이저(the Hypervisor) - VMM(Virtual Machine Monitor , or Manager) 라고도 불려진다. 하이퍼바이저는 여러 개의 OS가 단일 하드웨어 호스트를 공유할 수 있도록 하는 프로그램 각 OS는 호스트의 프로세스, 메모리 및 기타 자원들을 모두 스스로 나타낸다. 하이.. 2014. 3. 11.
하이퍼바이저 - Hypervisor Hypervisor 1. 정의 → Virtual Machine Manager(VMM)이라고도 불리며 하드웨어 가상화(Hardware Virtualization) 기술 중 하나로 여러 개의 OS들이 한 개의 호스트 머신(Host Computer)위에서 돌게 해 준다. → Hypervisor의 예 2. 하드웨어 가상화의 장점(advantages of platform virtualization) A. machine consolidation → U.S. EPA 연구에 의하면 서버 용량의 약 5%만 실제로 사용된다고 한다. 단일 서버에서 여러 플랫폼을 가상화하면 서버 활용도를 높일 수 있고 활용도가 높아지므로 서버 수가 줄어든다. B. reduce datacenter costs by reducing your ph.. 2014. 3. 11.