본문 바로가기
728x90

컴퓨터공학5

백준 6603번 - 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34]) 집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 .. 2020. 1. 15.
폴링(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.
728x90
반응형

`