본문 바로가기

Operating System6

SISD / SIMD / MISD / MIMD SISD(Single Instruction Single Data stream) 제어장치와 프로세서를 각각 하나씩 갖는 구조 한 번에 한 개씩의 명령어와 데이터를 처리하는 단일 프로세서 시스템 명령어가 순서대로 실행되지만 실행 과정은 여러 개의 단계들로 나누어 중첩시켜 실행 속도를 높이도록 파이프라인으로 되어있는 것이 보통 SIMD(Single Instruction Multiple Data stram) 배열 프로세서와 파이프라인이 이 분류에 속함 여러 개의 프로세서들로 구성되고, 프로세서들의 동작은 모두 하나의 제어장치에 의해 제어 모든 프로세서들은 제어장치로부터 동일한 명령어를 받지만 명령어 실행 과정에서 서로다른 데이터들을 사용 모든 프로세서들이 기억 장치를 공유하는 경우도 있고, 각 프로세서가 기억 .. 2022. 3. 2.
인터럽트(Interrupt) 인터럽트(Interrupt) 인터럽트 - 어떤 일을 수행하는 도중에 끼어드는 사건(Event)- 인터럽트가 발생했을 때 일을 처리하는 것을 '인터럽트 처리'라고 함- CPU가 프로세스 명령어를 순차적으로 수행하는 도중 다른 처리를 위해 끼어드는 사건(인터럽트) 발생 시 CPU는 현재 하던 일을 멈추고 사건을 처리하기 위해 정의된 Interrupt Service Routine의 내용을 먼저 수행 인터럽트에 대한 이해 - 일반적인 인터럽트 = 하드웨어 인터럽트- H/W는 비동기적으로 사건을 알리는데, H/W 인터럽트가 그 수단- 이 때 사건을 알리는 동작을 IRQ라 함 -> 이 신호로 장비를 확인- IRQ는 PIC(Programmable Interrupt Controller)를 통해서 요청- 인터럽트를 사용.. 2015. 8. 14.
시스템 콜(System Call) 시스템 콜(System Call) 시스템 콜 - 시스템 콜은 응용프로그램에서 운영체제에게 어떠한 기능(시스템 자원)을 수행해달라고 하는 하나의 수단 시스템 콜의 이해 - 사용자 프로세스가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비시를 요청하는 하나의 방법- 처리방식- 사용자 프로세스가 시스템 콜을 요청하면 제어가 커널로 넘어옴(사용자 모드 -> 커널 모드)- 커널은 내부적으로 각각의 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고 그 번호에 해당하는 제어루틴을 커널 내부에 정의- 커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인- 커널은 그 번호에 맞는 서비스 루틴을 호출- 서비스 루틴을 모두 처리하고 나면 커널 모드에서 사용자 모드로 다시 전환 시스템 콜의 종류 - 프로세스.. 2015. 8. 14.
프로세서 vs 프로세스 프로세서 vs 프로세스 프로세서 - 하드웨어적인 측면- 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛- 중앙처리장치를 뜻하며, 적어도 하나 이상의 ALU와 처리 레지스터를 내장하고 있음 - 소프트웨어적인 측면- 데이터 포맷을 변환하는 역활을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)- ex) 워드프로세서, 컴파일러 등 - 결론적으로 CPU나 Microprocessor 라는 하드웨어를 의미 프로세스 - 특정 목적을 수행하기 위해 나열된 작업의 목록- 프로그램 : 작업의 과정이 파일로 저장되어 있는 것- 프로세스 : 메모리에 적재되어 실행 중이거나 대기 중인 프로그램 - 결론적으로 메모리에 적재되어 프로세서에 의해 실행중인 프로그램 2015. 7. 20.
프로세스간 통신(IPC - InterProcess Communication) 프로세스간 통신(IPC) 프로세스들간의 상호 자료와 정보를 교환하는 통신 방법. 목적 정보공유 : 동일한 정보에 대한 병행 접근(공유 파일 등)계산 가속화 : 특정 태스크의 작은 분할 태스크로의 분할 실행모듈성 : 별도의 프로세스나 스레드로 나누어 모듈식 형태의 시스템 구성편의성 : 한 순간에 많은 작업 수행 통신 방법 1. Pipe 하나의 프로세스는 읽기만 하고 다른 하나의 프로세스는 쓰기만 할 수 있다. 한 쪽 방향으로만 통신이 가능하기 때문에Half-duplex (반이중) 통신이라고 한다. Full-duplex (전이중) 통신을 가능하게 하기 위해 두 개의 파이프를 만들어야 한다. 반이중 통신이므로 2개의 Pipe(읽기 전용, 쓰기 전용)가 필요하며 구현이 매우 복잡해진다. 2. Message Qu.. 2015. 7. 8.
Process(프로세스) vs Thread(스레드) Process(프로세스) 실행 중인 상태의 프로그램을 프로세스 또는 태스크라고 하며, 멀티태스킹을 지원하는 운영체제에서는 여러 개의 프로세스에 CPU와 메모리 자원을 안정되게 분배해주어야 한다. Thread(스레드) CPU가 독립적으로 처리하는 하나의 작업 단위를 의미한다. 프로세스들은 독립된 공간을 가지고 있지만 프로세스 내의 스레드의 경우 독립된 register와 스택 영역을 가지면서 code, data, files 영역은 스레드끼리 공유하고 있음을 알 수 있다. * 스레드의 장점 - 시스템의 자원소모과 줄어든다. - 프로그램의 응답 시간이 단축된다. - 프로세스 간 통신 방법에 비해 스레드간의 통신 방법이 더 간단하다. * 스레드의 단점 - 프로세스 밖에서 각 스레드를 제어할 수 없다. - 여러 개.. 2015. 7. 6.
728x90