목록Computer Science/Operating system (34)
ecsimsw
Inter Process Communication IPC - 프로세스는 독립된 메모리 공간을 참조하기 때문에, 서로의 데이터에 독립적이다. 이런 독립된 프로세서가 서로 통신하는 방법(IPC)을 공부하였다. Unnamed Pipe - 파이프는 여러개의 프로세스의 입출력을 연결한다. 파이프는 단방향이기 때문에, 한 파이프는 한쪽 프로세스의 입장에서 읽기 혹은 쓰기 중 하나의 역할만으로 사용된다. 따라서 파이프를 이용해 양방향 통신을 위해선 두 파이프가 필요하고, 여러 프로세스와 통신할 경우 그에 따른 서로 다른 파이프를 필요로 한다. - unnamed pipe(익명 파이프)는 부모-자식 관계처럼 프로세스간의 관계가 명확할 때 사용된다. 또, 사용하는 프로세스가 실행 중일 때만 존재한다. Named Pipe ..
Exclusive control(배타적 제어) - 여러 개의 프로세스가 하나의 공통된 자원을 액세스하면 잘못된 처리를 야기할 수 있다. 이를 막기 위해 처리가 끝날 때까지 한 프로세스에서 자원을 독점하고 처리 후 다른 프로세스에게 넘기는 것, 즉 자원을 한 프로세스에서 독점시키는 것을 Exclusive control, 배타적 제어라고 한다. plus) 공유 잠금은 다른 프로세스가 데이터에 참조는 할 수 있지만 변경은 하지 못하고, 배타 잠금은 다른 프로세스가 데이터에 참조, 변경 모두 불가능한 잠금을 의미한다. Semaphore - 지정된 수의 프로세스만 공유 자원을 엑세스 하도록 제어하는 장치이다. 카운터를 지정하고, 엑세스하는 프로세스마다 카운터를 하나씩 줄여 0이된다면 OS는 이를 확인하고 더이상의..
Scheduling / Scheduling Algorithm Scheduling - OS가 프로세스에게 CPU를 할당할 순서를 정하는 것을 Scheduling이라고 한다. OS의 Scheduler 라는 소프웨어가 Ready Queue에 존재하는 프로세스들을 지정된 알고리즘으로 처리한다. Priority - 우선 순위가 높은 프로세스부터 처리하는 스케쥴링이다. 우선 순위는 프로세스의 중요도, 자원 사용도, 시간 제한 등에 의해 결정되며 같은 우선 순위를 갖을 경우 먼저 들어온 프로세스를 우선으로 한다. 데드락이 걸릴 상황을 유의해야한다. Round Robin - 프로세스가 기다리는 순서대로 일정 시간씩 CPU를 할당하는 방식으로, 일정 시간 이상을 소요하는 프로세스를 마지막으로하여 다시 반복한다. FCFS..
Process / Preemption, Dispatch / PSW / PCB Process - 사용자의 프로그램이 OS에 의해 메모리에 적재된 것이 Process이다. 하나의 프로그램는 여러 프로세스를 갖을 수 있고, 이렇게 여러 프로세스를 통해 여러 작업을 병행하는 것이 우리가 얘기하는 "멀티 테스킹"인 것이다. 이때, 이 여러 테스크를 우선 순위가 아닌, 시간 단위로 일정 시간 동안 나눠 여러 작업을 진행하는 것을 Time sharing system(시분할 처리 시스템)이라고 한다. Dispatch / Preemption - OS가 우선 순위에 맞춰 CPU의 권한을 할당하는 것을 Dispatch / CPU 권한을 뺐기는 것을 Preemption이라고 한다. dispatch는 보내다, 사람을 파견하다...
Interrupt - 현재 진행 중인 작업을 중단하고, 다른 작업에 CPU의 처리 권한을 넘기는 것을 인터럽트라고 한다. 인터럽트는 크게 내부 인터럽트와 외부 인터럽트로 나눌 수 있다. internal Interrupt - 내부 인터럽트는 실행 프로그램에서 무효한 명령을 처리하거나, 오류를 처리하기 위해 발생한다. 내부 인터럽트에는 다음과 같은 것이 있다. - program check : 오버플로우, 언더플로우나 Division by zero가 일어날 때 발생. - Page Fault : 무효한 페이지를 참조할 때 발생. - Trace : 디버그 시 프로그램을 한 명령씩 실행. - Superviser Call : 시스템 콜을 실행. external Interrupt - 외부 인터럽트는 주변 기기의 입출력..
Task / Throughput / Spool Job / Task - 사용자 입장에서 컴퓨터에게 주어지는 작업을 Job이라고 한다. - Task는 OS 입장에서 본 작업의 단위이다. OS는 Job을 여러 개의 Task로 분해하여 CPU에게 처리를 맡기고, 처리가 완료되면 해당 Task를 소멸시킨다. Throughput - OS의 단위 시간당 태스크 처리능력을 Througput(스루풋)이라고 한다. 프로세서, 네트워크, 메모리 I/O 등의 속도를 파악하기 위해 측정되기도 한다. Spool - CPU에서 저속인 입출력 장치로 가는 명령을 비교적 빠른 중간 메모리에 저장하는 것을 Simultaneous Peripheral Operation On-Line을 줄여 spool, 이를 위해 저장 공간에 명령을 저장하..
Data Storage Register - Cpu 안의 일시적인 기억 장치이다. 프로세스에서 계산 후 값을 잠시 저장하고, 다시 다른 계산을 위해 꺼내오기 위한 장치이다. 메인 메모리에 비해 용량은 적지만 훨씬 고속으로 작동한다. Primary Storage - Main memory 또는 internel memory 라고도 하며, 한국어로는 주기억 장치, 내부 기억 장치, 1차 기억 장치라고 불린다. CPU가 직접 제어할 수 있는 메모리로, 저장된 명령을 읽고, 필요에 따라 계산한다. 보통 RAM을 의미한다. RAM, ROM Secondary Storage - externel memory 라고도 하며, 한국어로는 보조기억 장치, 외부 기억 장치, 2차 기억 장치라고 불린다. 하드디스크나 SSD 같이 데이..
OS Kernel - kernel은 운영체제의 핵심으로 Cpu, Memory, Device를 통제한다. 메모리의 할당을 관리하고, 프로그램과 하드웨어의 보안을 책임지며, 하드웨어를 추상화하여 프로그래머가 보다 쉬운 프로그래밍으로 컴포넌트를 관리할 수 있도록 한다. System call - 운영체제에서 응용프로그램이 커널에 작업을 요청에 따라 커널에 접근하기 위한 인터페이스이다. 즉 프로그래밍 언어로 손댈 수 없는 하드웨어 영역을 직접 접근하여 운영 할 수 있도록 하는 것이다. system call에는 다음의 유형이 있다. - 프로세서 제어(process Control) - 파일 조작(file manipulation) - 장치 관리(Device Management) - 정보 유지(Information ma..