본문 바로가기
728x90

운영체제4

폴링(Polling) / 인터럽트(Interrupt) / DMA(Direct Memory Access) /* 본 내용은 학교 수업내용을 바탕으로 하고 OSTEP(Operating Systems: Three Easy Pieces) 교재를 참고하여 정리한 내용입니다. */ 폴링과 인터럽트를 보기 전 간단하게 컴퓨터구조와 하드웨어의 구성을 보고 진행하도록 하겠다. CPU와 메인메모리가 메모리버스에 연결되어 있다. 그래픽이나 다른 고성능 I/O장치들은 범용I/O버스에 연결될 수 있다.(ex. PCI) 그 아래에는 SCSI. SATS, USB와 같은 주변장치용 I/O버스가 있다. 이 주변장치버스를 통해 디스크, 키보드, 마우스와 같은 가장 느린 하드웨어 장치들이 연결된다. 이러한 구조를 유지하는 이유는 비용때문이다. 버스가 고속화되려면 더 짧아져야 하는데 고속의 메모리버스는 여러 장치들을 수용할 공간도 없고 이 버.. 2019. 12. 15.
병행성(1) - 락(LOCK) /* 본 내용은 학교 수업내용을 바탕으로 하고 OSTEP(Operating Systems: Three Easy Pieces) 교재를 참고하여 정리한 내용입니다. */ 프로세스는 디스크에 저장되어 있던 프로그램이 메인메모리에 올라와 CPU를 할당받기를 대기하고 있거나 이미 CPU를 할당받아 실행중인 프로그램을 의미한다. 쓰레드는 프로세스내에서 일련의 명령어를 실행하는 흐름의 단위를 의미한다. 각각의 프로세스들은 서로 다른 메모리 공간(코드, 데이터, 힙, 스택)을 할당받아 실행되지만 쓰레드는 프로세스 내부에서 스택영역을 제외한 나머지 메모리 영역을 공유하게 된다. 락(LOCK)을 공부하기 전에 그와 관련된 개념들을 우선 알아야 한다. 프로세스 내에는 여러 쓰레드가 존재할 수 있다. 이 때 각각의 쓰레드들은.. 2019. 12. 14.
멀티레벨페이지테이블(Multi-level Page Table) /* 본 내용은 학교 수업내용을 바탕으로 하고 OSTEP(Operating Systems: Three Easy Pieces) 교재를 참고하여 정리한 내용입니다. */ CISC(Complex Instruction Set Computing)체계에서는 하드웨어가 TLB미스를 처리하도록 설계하였고 RISC(Reduced Instruction Set Computing)체게에서는 TLB미스를 소프트웨어가 처리하도록 설계했다. 프로세스마다 별도의 테이블페이지를 가지고 있다. 그렇기 때문에 TLB를 사용하게 되면 프로세스 간 Context Switching이 발생할 시에 기존에 있던 TLB의 내용들을 모두 비우고 새로운 TLB내용을 저장해야하는데 이때 큰 성능저하를 가져올 수 있다. 그리고 페이징의 두 번째 문제점은 .. 2019. 12. 13.
TLB(Translation-Lookaside Buffer) /* 본 내용은 학교 수업내용을 바탕으로 하고 OSTEP(Operating Systems: Three Easy Pieces) 교재를 참고하여 정리한 내용입니다. */ 페이징은 프로세스의 주소공간을 고정된 크기로 나누고 각 페이지의 실제 위치와 매핑해주는 것이며 이때 필요한 정보들을 메모리에 있는 페이지테이블이라는 자료구조에 저장하게 된다. 이 페이지테이블에 매핑정보들을 저장하기 위해서는 큰 메모리 공간이 요구되기 때문에 페이지테이블에 접근하는 것은 큰 오버헤드를 유발한다. 그렇기 때문에 운영체제의 속도를 개선하기 위해서는 TLB(Translation-Lookaside Buffer), 변환-색인 버퍼라는것의 도움이 필요하다, cf) MMU(Memory Management Unit)은 CPU가 메모리에 접근.. 2019. 12. 13.
728x90
반응형

`