운영체제

컴퓨터 구조와 운영체제/운영체제

[운영체제] 커널(kernel)

커널은 운영체제에서 핵심 기능을 담당하는 한 부분이다. 핵심 기능 자원에 접근, 조작하는 기능 프로그램이 올바르게 그리고 안전하게 실행되게 하는 기능 보통의 운영체제라 함은 커널을 일컫는 경우가 많다. 운영체제에는 속하지만 커널에는 속하지 않는 기능? UI(User Interface) → 사용자와 컴퓨터 간의 연결 통로일 뿐 운영체제는 응용 프로그램들이 하드웨어 자원에 접근할 때, 자신을 통해서만 접근할 수 있도록 함으로써 자원을 보호한다. 운영체제는 이렇게 문지기 역할을 하는데 이중 모드로 이를 구현한다. 이중 모드(Dual Mode) CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식 사용자 모드(User Mode) 운영체제 서비스를 제공받을 수 없는 모드로 커널 영역의 코드를..

컴퓨터 구조와 운영체제/운영체제

[운영체제] 운영체제(Operating System)란

1. 운영체제란 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 하는 프로그램 → 운영체제는 컴퓨터의 메모리 내의 커널 영역에 적재되어 실행된다. 1) 운영체제의 역할 메모리 자원의 관리 : 메모리 주소가 겹치지 않게 응용 프로그램들을 적당한 공간에 적재하고 더 이상 실행되지 않는 프로그램은 메모리에서 삭제하여 메모리 자원을 관리한다. CPU 관리 : 특정 프로그램이 CPU를 독점하여 사용하면 다른 프로그램들이 동작할 수 없기 때문에 CPU를 최대한 공정하게 여러 프로그램에게 할당한다. 어떤 프로그램이 좀 더 나중에 실행되도 되는지, 어떤 프로그램이 CPU를 좀 더 점유하고 있어도 되는지 등을 파악하여 결정한다. 입출력장치의 관리 ➡️ 응용 프로그램에 자원을 효율적으로 배분하고 실..

컴퓨터 구조와 운영체제

프로세스 동기화(Process Synchronization)

Process Synchronization문제 공유 데이터에 대한 동시 접근은 데이터의 불일치 문제를 발생시킬 수 있다. 일관성 유지를 위해서는 공유 데이터를 접근하는 협력 프로세스간의 실행 순서를 정해주는 메커니즘이 필요하다. 1. Race Condition(경쟁 상태) 여러 프로세스들이 동시에 데이터에 접근하는 상황 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라지게 된다. race condition을 막기 위해서는 concurrent process 동기화(synchronize)가 필요하다. 공유 데이터의 동시 접근(Concurrent access)은 데이터의 불일치 문제를 발생시킬 수 있다. 따라서, Race condition을 막고 일관성을 유지하기 위해서는 협력 프로세..

컴퓨터 구조와 운영체제

CPU 스케줄링

http://www.kocw.net/home/search/kemView.do?kemId=1046323 의 강의를 정리한 글입니다. CPU burst와 I/O burst 프로세스는 CPU burst와 I/O burst가 왔다갔다 번갈아가면서 프로그램을 실행한다. CPU burst : CPU 명령을 실행하는 것 I/O burst : I/O를 요청하고 기다리는 것 프로그램의 종류에 따라서 CPU burst와 I/O burst의 빈도나 길이가 다를 수 있다. CPU burst time의 분포 그래프 I/O bound job : CPU burst가 짧고 빈도수가 많은 즉, I/O burst가 많이 끼어드는 작업을 말한다.(burst duration 0-8의 치솟는 구간) CPU bound job : I/O bur..

컴퓨터 구조와 운영체제

프로세스 관리

http://www.kocw.net/home/search/kemView.do?kemId=1046323 의 강의를 정리한 글입니다. 1. 프로세스의 생성 부모 프로세스가 자식 프로세스를 생성한다. COW(Copy-On-Write) : write(내용이 바뀔 때)가 발생할 때 부모를 복사해서 새로운 공간을 만들고 그 전에는 부모 것을 그대로 공유하고 있는다. 프로세스의 계층 구조를 형성 프로세스가 필요로 하는 자원은 운영체제로부터 받으며 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 부모와 자식이 자원의 일부만 공유하는 모델 부모와 자식이 자원을 전혀 공유하지 않는 모델(일반적) 수행 부모와 자식이 공존하며 수행되는 모델 자식이 종료될 때까지 부모가 기다리는 모델 2. 프로세스 생성..

컴퓨터 구조와 운영체제

쓰레드(Thread)

http://www.kocw.net/home/search/kemView.do?kemId=1046323 의 강의를 정리한 글입니다. 1. 쓰레드(Thread) 프로세스 내부에 CPU수행 단위가 여러개 있는 경우 각 CPU 수행 단위를 쓰레드라고 한다. lightweight process라고도 한다. 프로세스가 실행되면 프로세스 만의 code, data, stack으로 구성된 주소공간이 만들어지고 프로세스 하나를 관리하기 위해서 운영체제 내부에 PCB라는 것을 두고 프로세스의 상태 등을 나타낸다. ➡️ 쓰레드란 프로세스는 하나만 띄워놓고 program counter만 여러개를 두는 것으로, 각 쓰레드마다 현재 레지스터에 어떤 값을 넣고 프로그램 카운터가 코드의 어디를 수행하고 있는 지를 별도로 유지한다. 프..

컴퓨터 구조와 운영체제

프로세스

http://www.kocw.net/home/search/kemView.do?kemId=1046323 의 강의를 정리한 글입니다. 1. 프로세스란 프로세스(Process)란 실행 중인 프로그램을 말한다. 프로세스의 문맥(Context) - 프로세스의 현재 상태를 나타내는데 필요한 요소들 CPU의 수행상태를 나타내는 하드웨어(Program Counter, 각종 Register) Program Counter : 실행할 기계어 코드의 위치를 지정하고 다음에 실행할 명령어의 주소를 가지고 있는다. 프로세스의 주소 공간(code, data, stack) 프로세스 관련 커널 자료구조(PCB, Kernel stack) ➡️ 프로세스의 문맥을 파악하고 있지 않으면 CPU의 제어권을 뺏겼다가 다시 잡았을 때 프로그램의 ..

컴퓨터 구조와 운영체제

컴퓨터 시스템 구조(2)

http://www.kocw.net/home/search/kemView.do?kemId=1046323 의 강의를 정리한 글입니다. 동기식 입출력(synchronous I/O) I/O 요청 후 입출력 작업이 완료되어야 CPU의 제어가 사용자 프로그램으로 넘어간다. 비동기식 입출력(asynchronous I/O) I/O 작업이 시작된 후 입출력 작업의 완료를 기다리지 않고 CPU의 제어가 사용자 프로그램으로 넘어간다. 저장장치 계층 구조 Primary Memory : CPU가 직접 접근이 가능하다.(➡️ 바이트 단위로 접근이 가능하다) Secondary Memory : CPU가 직접 접근이 불가능하다. 위로 갈수록 빠르지만 비싸다. 그렇기 때문에 용량이 작고 휘발성 메모리이다. ➡️ 작은 용량으로 인해 메모..

github.com/hyunbenny/study
'운영체제' 태그의 글 목록