본문 바로가기

학부_대학원/운영체제

(21)
Interrupt 인터럽트 전에 인터럽트에 관해서 알아 보았다. 하지만 공부 하다보니 많이 헷갈리는 부분이 있었는데, 공부하다가 알게되어 정리하려 한다.트랩, 예외, 등등 너무 많은 용어가 있고 정확한 의미를 알지못했다. 해당 용어들의 관계는 아래와 같다.fault : page fault ...trap : int, system call, ...abort : devide by zero .... 인터럽트는 간단하게 비동기적인 사건이 발생을 알리는 매커니즘이다.외부 인터럽트현재 수행중인 태스크와 관련없는 주변장치에서 발생된 비동지적인 하드웨어적인 사건EX] 우리가 유튜브를 보다가 마우스를 움직이면 외부 인터럽트가 발생한 것. 트랩[trap]현재 수행중인 태스크와 관련있는, 즉 동기적으로 발생하는 사건을 말한다.faultfault를 일으..
프로세스간 통신 IPC - Shared Mem IPC(Inter-Process Communication)이란 영어 번역 그대로 프로세스간 통신을 말한다. 동일한 바이너리를 실행해도 전혀 다른 메모리를 사용하면서 서로 침범할 수 없다. 하지만 프로세스끼리 통신을 하기 위해서 여러가지 방법이 존재한다. 그 중 이번에 알아볼 내용은 메모리의 공유를 이용한 방법이다. FILE MAPPING을 이용하여서 메모리를 공유를 할 것이다. 그럼 FILE_MAPPING이란 무엇인가? FILE MAPPING이란 파일을 메모리에 연결하여 메모리에 입출력을 하면, 디스크와 직접 연결되어 있어 디스크에도 입출력이 이루어지는 기능을 말한다. [참고1]이를 잘 나타낸 그림이 MS에 나와 있어 가져왔다. 즉 하나의 메모리 조각을 같이 공유 함으로써, 데이터를 공유 할 수 있는 것..
캐시[Cache]란? 캐시를 설명하기에 앞서 사상(Mapping)이라는 용어에 대해서 알고 들어가려 한다.사상이라고 하면 보통.. 그.. 사상.. 우리가 생각하는 사상을 많이 생각했다. 하지만 컴퓨터 용어에서사상이란 사상(寫像, mapping)이란 가상주소와 물리주소의 대응 관계 또는 가상 주소로부터 물리 주소를 찾아내는 일을 말한다. 해당 용어는 프로세스간 통신(IPC)에서 공유 메모리를 이용한 방법에서도 많이 나온다. 캐시[Cache]란?프로그램이 수행될 때 나타나는 지역성을 이용하여 메모리나 디스크에서 사용되었던 내용을 특별히 빠르게 접근할 수 있는 곳에보관하고 관리함으로써 이 내용을 다시 필요로할 때 보다 빠르게 참조하도록 하는 것이다. [참고2]쉽게 풀어서 설명하면 사용되었던 데이터는 다시 사용되어 질 가능성이 높다..
동기화 vs 비동기화 컴퓨터 문서를 읽다 보면 운영체제 뿐만 아니라 여러 부가적인 요소에서 동기화와 비동기화에 관한 내용이아주 아주 많이 나온다.하나의 용어로 완벽하게 설명하기가 좀 어려워서 I/O 동기화 방식과 비동기화 방식을 접하게되어서이와 관련하여서 내용을 정리하고자 한다. 이와 관련해서 설명하기 전에 블로킹[Blocking] 함수에 관해서 알아 보고자 한다.소켓 프로그래밍을 만들면서 recv 함수를 사용하면서 블로킹 함수로서 사용 하였다. * 물론 블로킹 함수를 사용할지 말지를 선택하는 것은, 어떠한 프로그램이냐에 따라 다르게 선택해야한다.* 공격 payload를 작성할 때는 블로킹 함수를 사용 했다.블로킹 함수는 한번 호출되고 나서 해당 역할을 완료 될 때까지 return 하지 않고 기다리는 것이다.즉 해당 코드를 ..
System Bus[버스란?] 버스란?!컴퓨터를 공부하다 보면 I/O 버스, PCI 버스 등 기본적으로 많이 사용되는 용어이다.이를 명확히 하고자 정리한다. Computer Bus란?CPU가 처리한 데이터들은 모니터에 출력되거나 메모리에 저장되어 진다.이러한 행위가 이루어 지기 위해서는 위의 데이터들이 각 컴포넌트끼리 통신이 가능 해야한다.이러한 통신을 가능하게 해주는 Subsystem이 존재한다.또한 이러한 Subsystem을 Computer Bus라고 한다.즉 버스는 데이터를 통신할 수 있게 해주는 시스템이다.*컴포넌트란? http://richong.tistory.com/60 Bus의 종류 [더 많을수도..]System BusCPU와 메모리를 연결하는 Subsystem을 System Bus라고 명명한다.I/O Bus메모리와 다른 ..
캐시 쓰기 정책 과거 Cache Coherence에관해서 설명 했던 적이 있다.그와 관련해서 캐시 쓰기 정책에 관해서 알아 보도록 한다. 먼저 CPU가 메모리를 요구하게 된다. 그러면 캐시를 먼저 확인하게 되고캐시에 존재하게 되면 해당 캐시 메모리에 접근하게 된다.그리고 접근을 했다고 가정하고, CPU가 캐시 메모리 값을 변경 하였다.값이 변경 되었기 때문에, 캐시 메모리 값도 변경해야하고 메인 메모리 값도 변경 해야 할 것이다.정리하면0. CPU가 쓰기 요청1. CPU가 캐시 메모리 값 변경2. 메인 메모리 값 변경이 발생되어야 한 것이다. 여기서 설명할 정책은 "언제 메인 메모리 값을 변경" 해주냐를 정하는 정책이다. Write Through 정책해당 방식은 기본적으로 생각 할 수있는 정책이다. 내가 생각하기에는 부..
TLB[Traslation Lookaside Buffer] TLB는 Translation Lookaside Buffer이다.Translation 바꾸는lookaside 색인색인 또는 목록이라는 의미이며, 데이터를 기록할 경우 그 데이터의 이름, 데이터 크기 등의 속성과 그 기록 장소 등을 표로 표시하는 것.Buffer 저장 장소 번역해보면 바꾸는 장소를 표시해 놓은 저장 장소라는 개념이다. 무엇을 바꾸는 저장 장소인지 확인 알아보자. 시스템에서 가상 메모리가 존재 할 것이다. 그리고 우리가 알고 있는 과정을 거쳐서실메 물리 메모리를 획득한다. 하지만 이 과정을 계속하면 비효율 적이지 않을까?그래서 Cache 개념으로 TLB를 두는 것이다.아하! 그러면 가상 메모리에서 실제 메모리로 바꾸는 장소를 표시해 놓은 저장 장소가TLB인것을 알 수있다. 위의 그림과 같은 ..
Windows에서의 파일 읽기와 과정 보호되어 있는 글입니다.