시스템/운영체제
-
자원 관리시스템/운영체제 2020. 5. 8. 07:15
프로세스 관리 프로세스란 프로세스는 실행중인 프로그램이다. 프로그램은 디스크에 존재하는 수동적인 개체인 반면 프로세스는 다음 수행할 명령을 지정하는 PC(Program Counter)를 가지고 메모리에 동작하는 능동적인 개체다. 즉 디스크에 존재하는 프로그램이 메모리에 적재되어 실행되면 프로세스라고 불린다. 프로세스는 작업 수행을 위해 자원을 필요로 하며 프로세스가 종료되면 재사용 가능 자원을 반환해야 한다. 그리고 시스템은 프로세스의 집합으로 구성되는데, 프로세스 중 일부는 운영체제 프로세스들이며, 나머지는 사용자 프로세스들이다. 운영체제의 프로세스 관리 활동 사용자 프로세스와 시스템 프로세스의 생성과 제거 CPU에 프로세스와 스레드를 스케쥴링 프로세스를 일시 주이(suspend)했다가 재개(resum..
-
멀티프로그래밍 환경에서의 문제점시스템/운영체제 2020. 5. 7. 10:47
멀티 프로그래밍에서 크게 두 가지 문제점이 있다. 특정 프로세스가 무한루프에 빠질 수 있다. -> 해결책[타이머 사용] 특정 프로세스가 운영체제 혹은 다른 프로세스를 수정하려 한다. -> 해결책[이중 모드 연산] 위 두 가지를 해결하는 해결 책중 타이머 사용을 먼저 보자. 타이머 사용 운영체제가 프로세스 타이머의 카운트를 설정한다. 운영체제는 타이머의 카운트를 감소시키면서 카운터가 0이 되면 인터럽트를 발생시킨다. 타이머가 인터럽트를 발생시키면 제어는 자동으로 운영체제에게 넘어간다. 운영체제는 프로세스의 제어를 회수하거나 문제가 된 프로그램을 종료할 수 있다. 이중 모드 연산 이중 모드란 사용자 모드와 커널 모드를 분리하는 운영하는 모드다. 사용자 모드 : 사용자 프로그램이 동작하는 모드다. 커널 모드 ..
-
멀티프로그래밍 및 멀티태스킹시스템/운영체제 2020. 5. 4. 08:55
운영체제의 가장 중요한 측면은 효율성을 위한 멀티프로그래밍이다. 하나의 프로세스가 CPU를 독점하는 것은 좋지 않다. 왜냐하면 다른 프로세스들이 작업을 할 수 없기 때문이다. 그래서 여러 작업들을 병렬 및 병행 처리할 수 있게 하는 멀티태스킹 능력이 굉장히 중요하다. 여기서 병렬[parallelism]은 실제로 2개 이상의 작업이 동시에 처리되는 것을 말하고 병행[conccurency]은 하나의 프로세서에서 여러개의 작업이 순차적으로 빠르게 처리되어 작업이 동시에 처리되는 것처럼 보이게 하는 것이다. 멀티 프로그래밍(Multi-Programming) 멀티프로그래밍은 CPU가 가급적 많은 작업을 처리할 수 있도록 여러 개의 작업(코드+데이터)으로 구성된다. 전체 작업 중의 일부가 '장기 스케줄러'에 의해서..
-
클러스터형 시스템(Clustered System)시스템/운영체제 2020. 5. 4. 08:22
멀티 프로세서가 하나의 CPU 안에 여러 코어가 들어가 있는 장치라면 Clustered System은 하나의 랙(rack) 장비 안에 여러 컴퓨터가 서로 연동하면서 작동하는 장치이다. 이 랙(rack) 장비들이 다시 또 모여서 하나의 시스템을 구성한다. Clusterted system은 SAN(Storage Area Network)을 토아여 스토리지를 공유한다. 그리고 하나의 컴퓨터가 고장나도 다른 컴퓨터들은 동작하기 때문에 높은 가용성 서비스를 제공한다. Clusterted system은 대칭, 비대칭 구조가 있다. 비대칭 클러스터링 구조 : 다른 컴퓨터들이 응용 프로그램을 실행하는 동안 한 컴퓨터는 대기 모드 상태를 유지하는 Active-standby 모드다. 대칭 클러스터링 구조 : 둘 이상의 호스..
-
대칭과 비대칭 멀티 프로세싱시스템/운영체제 2020. 4. 24. 08:31
비대칭 멀티 프로세싱(Asymmetric Multi-Processing) 프로세서들간에 master-slave 관계가 있다. 마스터 프로세서가 슬레이브 프로세서에 작업을 할당하고 관리한다. 장점 : 자료 공유의 필요성을 감소시키므로 단순하다. 단점 : 마스터 프로세서가 전체 시스템 성능을 저하시킬 수 있는 병목 현상이 생긴다. 즉 다른 Slave 프로세서들은 Master 프로세서가 작업을 할당할 때까지 기다려야 한다. 대칭 멀티 프로세싱(Symmetric Multi-Processing) 주종 관계가 없이, 모든 프로세서들이 동일한 peer로 동작한다. 각 프로세서는 다른 프로세서의 간섭 없이 각자 자신의 작업을 수행한다. N개의 cpu가 있으면 성능을 크게 저하하지 않으면서 N개의 프로세스를 실행한다. ..
-
CPU의 발전과 트렌드시스템/운영체제 2020. 4. 24. 08:22
멀티코어를 알아보기 전에 싱글코어에 대해서 알아보자. 싱글 코어 싱클 코어는 한 개의 core로 된 CPU를 뜻한다. 코어는 명령을 실행하고 로컬로 데이터를 저장하기 위한 레지스터를 포함하는 구성요소다. 간혹 CPU를 코어라고 생각하는 사람이 있는데, 코어와 프로세서는 같은 의미로 쓰이고 있고 CPU는 명령을 실행하는 물리적 칩이다. 이 CPU 안에 여러 개의 코어가 들어있다. 멀티 코어를 지원하지 않았던 이유 옛날에는 멀티코어를 지원하지 않았다. 왜냐하면 컴퓨터를 운영하는데는 하나의 코어로 충분하다고 생각했고 멀티코어를 지원하려면 코어들끼리 서로 통신이 원할하게 되야 하고 자원을 공유하는데 있어서 동기화 작업도 잘 이루어야져야 했기 때문인데, 이 작업이 너무 복잡했다. 그래서 1971년 최초의 CPU라..
-
컴퓨터 저장 장치시스템/운영체제 2020. 4. 23. 21:44
저장 장치 계층 저장장치는 빠를 수록 비싸고, 비싸기 때문에 용량이 작다. 그리고 용량이 작기 때문에 많은 데이터를 포함 하기가 어려워 재빨리 비워주고 다른 데이터를 받아 들여야 해서 휘발성이다. 반면에, 저장자치가 느릴 수록 싸고, 싸기 때문에 용량이 커질 수가 있다. 그리고 용량이 크기 때문에 많은 데이터를 담을 수 있어 굳이 휘발성일 필요가 없어서 비휘발성 장치다. 레지스터(Register) 레지스터는 저장장치 중 가장 빠르지만 비싼 장치다. 레지스터를 직역하면 '등록하다'이다. 말 그대로 데이터가 잠깐 상주하다가(등록한다는 느낌으로 있다가) 금방 사라지고 그 자리에 다른 데이터가 온다. 레지스터는 CPU 내부에 위치해서 CPU와 밀접하게 작업을 한다. CPU에게 데이터가 오려면 무조건 레지스터를 ..
-
DMA(Direct Memory Access)시스템/운영체제 2020. 4. 23. 21:12
DMA(Direct Memory Access) 인터럽트 구동 I/O 형태는 소량의 데이터를 이동하는 데는 좋지만 대량 데이터 이동에 사용될 때는 높은 오버헤드를 유발한다. 이러한 문제점을 해결해 주는 것이 바로 DMA(Direct Memory Access)이다. DMA는 장치 제어기가 CPU에게 인터럽트를 요청하지 않고 바로 메인 메모리와 통신을 한다. 장치 제어기는 CPU 개입 없이 로컬 버퍼로부터 메인 메모리로 많은 양의 데이터 블록들을 직접 전송할 수 있다. DMA가 일어나는 시간 동안에 CPU는 다른 작업을 수행할 수 있다. DMA는 고속의 입출력 장치에서 사용된다.