IT

    Page Replacement 알고리즘 C로 만들기

    Page Replacement 알고리즘 C로 만들기

    호야의 블로그 [C] 운영체제-Page Replacement 알고리즘 만들기가상 메모리 과목에서 배웠던 Page Replacement 알고리즘, Least Recently use(LRU)를 C로 구현하도록 하겠습니다. 개요글을 읽기에 앞서 이전에 올려드렸던 가상 메모리에 관한 설명을 먼저 보신다면 보다 수월하게 이해할 수 있을 것입니다. 아래 링크를 클릭하시면 됩니다.2018/10/30 - [IT/OS] - [OS] 운영체제 5차 정리 - Virtual Memory LRU는 가장 최근에 사용한 메모리만 사용하는 알고리즘으로 페이지 실패(Page Fault)가 일어날 때 가장 오래된 메모리와 교체하는 알고리즘입니다. 만약 기존 테이블에 페이지 'aaa'가 들어가있는데 다시 'aaa'가 페이징 한다면 페이지..

    CPU 스케줄링 시뮬레이터 C로 만들기

    CPU 스케줄링 시뮬레이터 C로 만들기

    호야의 블로그 [C] 운영체제-CPU 스케줄링 시뮬레이터 만들기올해 수행했던 운영체제 short term job에서 일어나는 CPU 스케줄러를 구현하고 확인해보겠습니다. C를 이용하였으며 리눅스 환경에서 구현하였습니다. FCFS, SJF, SRT, Priority, RR(Round-robin) 알고리즘을 구현할 것이며 키보드로 제어가 가능한 UI와 가상의 프로세스 job을 생성하는 기능까지 추가하겠습니다. 개요글을 읽기에 앞서 이전에 올려드렸던 CPU 스케줄러에 관한 설명을 먼저 보신다면 보다 수월하게 이해할 수 있을 것입니다. 아래 링크를 클릭하시면 됩니다.2018/10/24 - [IT/OS] - [OS] CPU 스케줄러 최종 출력화면은 다음과 같을 것이며 비어있는 entry는 proc.txt에서 프로..

    영상처리-C++로 이미지 Sobel 경계 검출 및 영상 이진화

    영상처리-C++로 이미지 Sobel 경계 검출 및 영상 이진화

    호야의 블로그 [C++] 영상처리-이미지 Sobel 경계 검출 및 영상 이진화자신의 사진을 통해 직접 Sobel 경계 검출 실습과 영상 이진 변환 실습을 합니다. Sobel 경계 검출 Sobel 경계 검출의 알고리즘은 3*3크기의 행렬을 사용하여 연산을 하였을 때 중심을 기준으로 각방향의 앞뒤의 값을 비교하여서 변화량을 검출하는 알고리즘입니다. 3x3크기의 행렬을 수직(X), 수평(Y) 방향별로 각각의 행렬을 가지는 데 형태는 다음과 같이 수직, 수평 밝기 변화에 따릅니다. 쉽게 말하면 점을 기준으로 수직(X) 필터는 좌우 비교, 수평(Y) 필터는 위아래를 비교하여 결정합니다. 소벨 마스크는 모든 방향의 에지를 추출하며, 잡음에 강한 편입니다. 또한 수직 수평 방향 에지보다 대각선 방향 에지에 더 민감하..

    운영체제 5차 정리 - Virtual Memory

    운영체제 5차 정리 - Virtual Memory

    호야의 블로그 [OS] 운영체제 5차 정리저번 메모리 관리에 이어 가상 메모리에 관한 정리를 하도록 하겠습니다. Virtual Memory*Background of Virtual Memory - 프로그램이 실행되려면 메인 메모리에 프로그램이 탑재되어야 하는데, 그 크기가 클 경우는 문제가 될 수 있다. - 소스 코드의 전체의 루틴 중에 실행되어 사용되는 코드는 많지 않으므로, 전체 중에 일부만 탑재시키는 목적으로 가상 메모리를 사용한다. - Memory Management에서의 목적과 같이 Degree of multiprogramming을 높여주는 것이 목적이지만 Memory Management의 Overlay나 Dynamic Loading, Linking과 다른 것은 Logical address spa..

    운영체제 4차 정리 - Memory Management (2)

    운영체제 4차 정리 - Memory Management (2)

    호야의 블로그 [OS] 운영체제 4차 정리저번 메모리 관리 정리에 이어 이번에 메모리 관리 마무리 정리를 하도록 하겠습니다. Memory Management (2)Non-Contiguous Allocation* Page - 물리적 주소공간을 고정된 사이즈의 Block으로 나눈 것을 Frame이라 한다. - 논리적 주소공간을 고정된 사이즈의 Block으로 나눈 것을 Page라 한다. - 1개의 프로그램을 실행시키기 위한 n개의 Page는 n개의 Frame이 필요하다. - 논리적 주소공간을 물리적 주소공간으로 번역하기 위해 Page Table이 필요하다. - External Fragmentation을 없앨 수 있으며, 프로세스에 할당되는 주소공간이 연속적일 필요가 없다. - Internal Fragmenta..

    운영체제 3차 정리 - Memory Management (1)

    운영체제 3차 정리 - Memory Management (1)

    호야의 블로그 [OS] 운영체제 3차 정리저번 운영체제 정리에 이어 이번에는 메모리 관리에 대한 정리를 시작하겠습니다. Memory Management (1) - 메모리의 기본 단위는 "byte" 또는 "word"이며 일반적으로 프로세서는 메모리로부터 처리할 내용을 가져오거나 처리 결과를 메모리에 저장함 - 명령어 실행과정에서 메모리는 단지 메모리 주소의 연속으로 보기 때문에, 프로그램이 메모리의 주소를 어떻게 생성하는지 알 수 없어 프로그램을 실행시키기 위한 메모리 load 방법을 알 필요가 있음 - Process를 메모리에 Load 하는 방법으로 연속적으로 메모리를 할당하는 방법과 프로세스를 페이지나 세그먼트 단위로 나누어 여러 곳에 흩어져 적재하는 분산 적재로 구별할 수 있음 - 다중 프로그래밍 시..

    운영체제 2차 정리 - 데드락(Deadlock)

    운영체제 2차 정리 - 데드락(Deadlock)

    호야의 블로그 [OS] 운영체제 2차 정리저번 포스트와 마찬가지로 운영체제 정리했던 자료를 공유하겠습니다. 오늘은 데드락에 관한 내용을 다루겠습니다. 기본 개념을 익히신 상태로 참고용으로 봐주시면 도움이 되겠습니다. 데드락(Deadlock)※ 데드락 - 다중 프로그래밍 시스템에서 결코 일어나지 않을 사건을 기다리고 있는 프로세스를 Deadlock, 교착상태 - 두 개 이상의 작업이 중지되고 각각 사용할 수 있는 자원을 기다리는 경우, 시스템 측면에서 자원의 교우가 서로 뒤엉킨 상태 - 임의의 프로세스 집합에서 그 집합 내의 각각의 프로세스가 그 집합 내의 다른 프로세스에 의해서만 발생될 사건을 서로 기다리고 있는 상태 - Deadlock은 제한된 자원의 이용률과 효율성을 증가시키기 위한 병행 처리와 자원..

    운영체제 1차 정리 - 스케줄링

    운영체제 1차 정리 - 스케줄링

    호야의 블로그 [OS] 운영체제 1차 정리작년에 정리한 운영체제 과목을 공유하고자 합니다. 최대한 간단히 정리하였습니다. OS - Scheduling1. 멀티프로그래밍-CPU사용/IO ->메모리 사용 ->실행 우선권 2. 타임 쉐어링(Time Sharing): 동일 시간으로 배분 3. 계층 접근 방식(layered approaches): OS를 여러 계층으로 나누고 각 계층의 하위 계층에 놓음app 장점: 모듈화 / 단점: 정의가 어렵다HWOS ->user/kernel 4. 프로세스: 실행중인 프로그램, 능동적이다. 일의 기본 단위(unit of working)프로그램: 수동적인 동작을 하며 메모리에 미리 안 올라가있다.프로세스의 주기: 탄생-활동-죽음(상태 변화로 일어남) new -> ready run..

    안드로이드에서 웹서비스 호출하기(wsdl)

    안드로이드에서 웹서비스 호출하기(wsdl)

    호야의 블로그 [Android] 안드로이드에서 Soap wsdl 웹서비스 호출하기자바 및 안드로이드에서 웹 서비스를 호출하는 연습 중입니다. 안드로이드 스튜디오에서 자체적으로는 지원하지 않아 ksoap2 라는 라이브러리를 사용하여야 합니다. 또한 웹서비스를 위한 wsdl 주소를 알아야 합니다. 여기서 wsdl이란 Web Services Description Language의 약자로 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술되는 언어 입니다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술되어 기술된 내용을 읽고 활용이 가능합니다. 라이브러리 추가먼저 ksoap2 라이브러리를 여기에서 다운받습니다. 이후 안드로이드 스튜디오에서 ..

    운영체제 CPU 스케줄러

    운영체제 CPU 스케줄러

    호야의 블로그 들어가며저번 시간 프로세스에 관해 간단히 알아보았고, 이번 시간엔 스케줄링 알고리즘의 핵심. CPU 스케줄링에 대해 알아보겠습니다. 시스템 전체에 퍼포먼스를 고려한 공평성을 위한 것으로 3가지 종류의 스케줄러가 있다고 했습니다.long-term 스케줄러: new->ready 사이midium-term 스케줄러: swap에 관여short-term 스케줄러: CPU 스케줄링, ready -> run (CPU에서 동작해서 속도가 제일 빠르다)이중에서도 short-term 스케줄러에 해당하는 CPU 스케줄링 알고리즘에 대해 알아보도록 하겠습니다. 평가기준(performance criteria)CPU 스케줄링을 평가하는 기준이 있습니다. CPU에 동작시간이나, 사용량, 응답시간 등 아래와 같은 다양한..