CS지식/운영체제 31

TIL 정리_82(운영체제)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Priority Scheduling 우선순위 스케줄링 우선순위가 높은 프로세스에게 CPU를 할당한다 우선순위는 정수값으로 표현된다 (작은숫자가 높다) - preemptive - nonpreemptive SJF 스케줄링도 일종의 우선순위 스케줄링이다 문제점 : 경우에따라 영원히 할당받을 수 없을정도로 우선순위가 밀릴 수 있다 해결 : Aging을 사용한다 Aging(에이징) 아무리 우선순위가 낮은 프로세스여도 기다리는 시간이 길어질수록 우선순위를 앞당겨준다 Round Robin 스케줄링 각 프로세스는 동일한 크기의 할당시간을 가진다 (time quantum) 할당..

TIL 정리_77

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 CPU scheduling Scheduling Criteria CPU utilization (이용률) CPU를 가능한 바쁘게 일을 시켜야 한다 -> 사용률을 의미 Throughput(처리량) 주어진 시간내에 CPU가 일을 많이 처리해야한다 -> 처리량을 의미 Waiting time(대기 시간) CPU를 기다리는 시간을 말한다 Response time(응답 시간) 처음으로 CPU를 얻기까지 걸린 시간을 말한다 -> 총 수행시간 FCFS(First-Come-First-Served) 프로세스의 도착 순서가 순차적이다 SJF(Shortest-Job-First) CPU를..

TIL 정리_76

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Message Passing Message system 프로세스 사이에 공유 변수(shared variable)를 일체 사용하지 않고 통신하는 시스템을 말한다 Direct Communication 통신하려는 프로세스의 이름을 명시적으로 표시한다 Process P ---> Process Q Indirect Communication mailbox(혹은 port)를 통해 메시지를 간접적으로 전달한다 Process P -----> Mailbox M ------>Process Q -> Direct Communication, Indirect Communication 둘 다..

TIL 정리_75

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 프로세스 간 협력 독립적 프로세스 프로세스는 각자의 주소 공간을 가지고 수행되므로 원칙적으로 하나의 프로세스는 다른 프로세스의 수행에 영향을 끼지치 못한다 협력 프로세스 프로세스 협력 메커니즘을 통해 하나의 프로세스가 다른 프로세스의 수행에 영향을 미칠 수 있다 프로세스 간 협력 메커니즘 (IPC :Interprocess Communication) 메시지를 전달하는 방법 message passing : 커널을 통해 메시지 전달 주소 공간을 공유하는 방법 shared memory : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 shared memor..

TIL 정리_74

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 프로세스의 생성(Process Management) 부모 프로세스가 자식 프로세스를 생성한다 -> 프로세스의 문맥을 복제 생성 프로세스의 트리(계층 구조) 형성 Copy-on-write(COW) 운영체제 메모리관리 파일 시스템에 자주 쓰이는 용어로 write가 발생했을 때 복사를 한다는 의미이다 그 이전까지는 부모의 문맥을 공유한다 -> 효율적인 운영체제에서는 주소 공간만을 공유하여 사용한다 프로세스는 자원을 필요로 한다 자원을 받는 방식 운영체제로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하..

TIL 정리_73

Thread 프로세스 내부에 CPU 수행 단위가 여러 개 존재하는 것을 말한다 주소공간의 구조 (Thread 추가) Thread1의 Stack/ Thread2의 Stack / Thread3의 Stack data code Thread의 구성 program counter register set stack space -> program counter가 코드의 어느 부분을 가리키는지, register의 값이 어떻게 되는지를 stack에 쌓는다 Thread가 동료 쓰레드와 공유하는 부분(task) code section data section OS resources 정통적인 개념의 heavyweight proces는 하나의 Thread를 가지고 있는 task라고 볼 수 있다 프로세스 안에 쓰레드를 여러 개 두는 ..

TIL 정리_72

Process Control Block PCB 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보이다 다음의 구성 요소를 가진다(구조체로 유지) 1. OS 관리상 사용하는 정보 - Process state, Process ID - scheduling information, priority 2 CPU 수행 관련 하드웨어 값 - Program counter, registers 3 메모리 관련 - Code, data, stack 4. 파일 관련 문맥 교환(Context switch) Cpu를 한 프로세스에서 다른 프로세스로 넘겨주는 과정이다 프로세스 A -> 프로세스 B CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음을 수행한다 - CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 ..

TIL 정리_71

커널 주소 공간 커널의 주소 공간 또한 code, data, stack으로 구성되어 있다 커널의 코드 / code 시스템 콜, 인터럽트 처리 코드 자원 관리를 위한 코드 편리한 서비스 제공을 위한 코드가 존재한다 커널의 데이터 / data 하드웨어를 관리한다 하드웨어마다 자료구조가 존재한다 프로세스를 관리하기 위한 자료구조인 PCB가 존재한다 커널의 스택 / stack 사용자 프로세스마다 커널 스택이 따로 존재한다 사용자 프로그램이 사용하는 함수 사용자 정의 함수 자신의 프로그램에서 정의한 함수를 말한다 라이브러리 함수 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수 자신의 프로그램의 실행 파일에 포함되어있다 -> 사용자 정의 함수와 라이브러리 함수는 프로세스의 주소 공간에서 사용된다 커널 함수 운영체제..

TIL 정리_70(운영체제)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 동기식 입출력과 비동기식 입출력 동기식 입출력(Synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어간다 구현방법 I/O가 끝날 때까지 CPU를 낭비시킴 매 시점 하나의 I/O만 이렁날 수 있다 2. I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는다. I/O처리를 기다리는 중에 그 프로그램을 줄 세우고, 다른 프로그램에게 CPU를 준다 비동기식 입출력(asynchronous I/O) I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어간다 두 경우 모두 I/O의 ..

TIL 정리_68

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 운영체제 용어 Multitasking : 여러 작업이 동시에 실행된다 Multiprogramming : 메모리에 여러 프로그램이 동시에 올라가는 방식이다 Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미로 자주 사용된다 Multiprocess -> 위의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다 Multiprocessor : 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미한다 예) CPU가 여러 개 있는 고성능 시스템 운영체제의 예시 유닉스(UNIX) : 대형 컴퓨터를 위한 것 - 코드의 대부분을 C언어로 작성한다 //..