CS지식/운영체제
-
7일차 - Process Syncronization(1)CS지식/운영체제 2021. 4. 25. 22:24
오늘은 프로세스 동기화에 대해서 배웠다. 프로세스는 여러 개 존재하고 여러 개의 프로세스가 하나의 데이터 공간에서 공유할 경우 발생할 수 있는 문제에 대해 알아보고 해결법에 대해 알 수 있었다. 1. 데이터 접근 process syncroization에 대해 배우기 전에 데이터의 접근 방법에 대해 알아보자. 데이터를 접근할 때는 다음과 같은 패턴을 가진다. 데이터 저장소에서 필요한 데이터를 가져오고 연산장치에서 연산을 한 후 연산결과를 다시 데이터 저장소에 보내게 된다. 데이터 저장소에는 memory, 디스크, 각 프로세스의 주소공간이 대표적인 예이고 연산장치에는 CPU, 컴퓨터 내부, 프로세스가 대표적인 예이다. 이렇게 데이터 저장소를 하나의 연산장치가 사용할 경우에는 별다른 문제가 없을 것이다. 하지..
-
6일차 - CPU SchedulingCS지식/운영체제 2021. 4. 21. 22:58
오늘은 CPU 스케쥴링에 대해서 배웠다. 앞에서 배운 내용은 CPU와 프로세스에 대한 간단한 개념을 배웠는데 프로세스가 CPU를 할당받는다고 했다. 할당받을 때 규칙이 존재하고 오늘은 그 규칙에 대해 배울 수 있었다. 1. CPU 스케쥴링의 필요성 운영체제는 왜 CPU 스케쥴링이 필요할까? 우선, 필요한 이유를 설명하기 전에 필요한 개념부터 말하려고 한다. 프로그램이 실행(execution) 된다는 것은 CPU burst와 I/O burst의 연속을 의미한다. CPU burst는 CPU를 사용하여 무언가는 하는 시간이고 I/O burst는 I/O의 결과를 기다리는 시간이다. 이러한 점에서 우리는 프로세스를 2가지로 특성 분류할 수 있다. 1) I/O bound process CPU를 잡고 계산하는 시간보..
-
5일차 - 프로세스 관리(Process Management)CS지식/운영체제 2021. 4. 18. 22:18
오늘은 프로세스가 어떻게 생성되고 종료되는지 구체적으로 배웠다. 이전에 사용자 프로세스가 I/O에게 요청을 직접하지 못하고 운영체제에게 시스템콜을 해서 한다고 배웠다. 오늘도 많은 내용을 배웠지만 사용자 프로세스가 직접 무엇을 하는 권한은 없고 왠만한 기능을 수행하 때에는 운영체제에 시스템 콜을 한 후 진행된다고 느꼈다. 1. 프로세스 생성 프로세스의 생성은 기본적으로 부모 프로세스가 자식 프로세스를 생성하게 된다. 여기서 부모 프로세스는 하나 뿐이고 자식 프로세스는 여러 개가 될 수 있고 이러한 이유로 프로세스의 트리(계층 구조)를 형성하게 된다. 생성된 프로세스는 CPU나 메모리와 같은 자원이 필요한데 자원은 운영체제로부터 받게 된다. 프로세스의 모델은 자원의 공유 시점과 수행(execution) 시..
-
4일차 - 스레드(Thread)CS지식/운영체제 2021. 4. 15. 21:41
오늘은 저번시간에 이어 쓰레드에 대해 배웠다. 기술면접에서 스레드와 프로세스의 차이점에 대해 물어본다는 얘기를 들은 적이 있다. 그것도 대비하고 정확히 차이점을 알기 위해 집중해서 들었다. 1. 쓰레드란? 쓰레드의 정의를 먼저 얘기해보면 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 이렇게 정의만 봤을 때는 정확히 무엇을 의미하는지 잘 모르겠다. 간단히 얘기하면, 프로세스 하나에 CPU 수행단위를 여러 개 둘 수 있는데 그 하나의 단위를 쓰레드라고 한다. CPU수행단위를 여러 개 둔다는 것은 또 뭘까? 예를 들어서 설명해보자. 만약, 우리가 Chrome이라는 웹 브라우저 프로그램을 실행하여 네이버에 접속했다고 하자. 이것은 프로세스가 된다. 그리고 다른 웹에 접속하기 위해..
-
3일차 - 프로세스(Process)CS지식/운영체제 2021. 4. 13. 00:44
오늘은 프로세스에 대해서 배웠다. 프로세스라는 단어는 들어본 적이 있지만 정확히 무엇을 의미하는지는 몰랐다. 오늘 강의를 통해 개념을 확실히 잡을 수 있는 기회가 되었다. 1. 프로세스란? 프로세스를 간단히 말하면 실행중인 프로그램이다. 이러한 프로세스를 이해하기 위해서는 프로세스의 문맥(context)가 중요하다. 여기서 문맥(context)는 어떠한 문장에서 단어가 사용되는데 그 단어의 뜻을 이해하기 위해서는 전체적인 문장의 문맥을 이해할 필요가 있다. 여기서 말하는 문맥과 같은 의미라고 보면 된다. 2. 프로세스 상태 프로세스는 다음과 같은 상태를 가지고 있고 상태가 변경되며 수행된다. 1) Running CPU를 잡고 instruction을 수행 중인 상태 2) Ready CPU를 기다리는 상태(..
-
2일차-System Structure & Program ExecutionCS지식/운영체제 2021. 4. 7. 22:02
오늘은 컴퓨터 내부에서 사용자 프로그램이 동작할 때 흐름의 전반적인 모습을 배웠다. 세부적으로 들어가면 매우 어려운 내용이지만 교수님이 설명을 하시면서 예를 들어주고 이해가 잘 되도록 해주기 때문에 큰 그림으로 봤을 때는 어떠한 느낌인지는 알았다. 1. 컴퓨터 시스템 구조 컴퓨터는 CPU와 메모리로 구성되어있다. 메모리에 쌓여있는 운영체제, 사용자 프로그램을 정해진 스케쥴링에 따라 CPU는 가져와서 일을 하게 된다. 이렇게 보면 간단해보이지만 더 자세히 들어가면 많은 것들이 존재한다. 먼저, CPU 내부부터 살펴보겠다. - register: 메모리보다 빠르면서 정보저장이 가능한 공간 - mode bit: cpu에서 실행되는 것이 운영체제인지 사용자 프로그램인지 구분 (1: 사용자 프로그램 수행, 0: O..
-
1일차-운영체제란?CS지식/운영체제 2021. 4. 3. 21:54
오늘부터 CS지식 공부를 위해 KOCW에서 제공하는 무료강의로 운영체제 공부 시작!! 반효경 교수님의 운영체제(2014)강의를 선택했다. SW개발자 취업 오픈카톡방에서 많은 사람들이 추천을 해줬기 때문에 일단 믿고 보기 (강의 url: www.kocw.net/home/search/kemView.do?kemId=1046323) 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net 1. 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 만약, 운영체제가 없다면 검은 배경화면에 뭐라고..