CS지식/운영체제
-
메모리 주소란 무엇인가CS지식/운영체제 2021. 6. 12. 22:57
오늘 알아 볼 메모리 주소에서 말하는 메모리는 메인메모리, RAM에서의 주소에 대해 알아볼 것이다. 메모리 주소를 알아보기 전, 메모리에 대해 간단히 알아보자. 메모리는 CPU가 작업을 수행하는 데 있어 필요할 때 직접 액세스 할 수 있도록 운영 체제, 응용 프로그램 및 기타 정보등을 저장하는 하드웨어이다. CPU의 작업공간으로서 메모리의 용량도 중요하지만 메모리를 관리하는 방법이 CPU의 성능에 큰 영향을 미친다. 메모리는 크게 2가지의 영역으로 구분되는데 운영체제 영역과 사용자 영역이 있다. 운영체제는 중요한 역할을 하기 때문에 사용자가 운영체제 영역을 침범하지 못하도록 분리하여 메모리를 사용한다. 사용자 프로세스는 메모리에 들어올 때 운영체제 영역으로 지정된 영역 이외의 사용자 영역에 저장된다. 위..
-
교착 상태란 무엇인가CS지식/운영체제 2021. 6. 9. 22:31
교착 상태는 시스템 내에서 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 자신의 작업을 더 이상 진행하지 못하는 상태를 말한다. 교착 상태가 어떻게 보면 프로세스가 작업을 진행하지 못한다는 면에서 Starvation과 비슷해 보일 수 있다. 하지만, Starvation은 운영체제의 정책에 의해 특정 프로세스가 작업을 진행하지 못하는 것이고 교착 상태는 프로세스들이 작업을 진행하다가 자연스럽게 발생하는 현상이다. 그래서 Starvation은 발생하지 않도록 새로운 정책을 추가해서 해결할 수 있지만 교착 상태는 운영체제가 상황을 감시하다가 교착 상태가 발생하면 강압적으로 해결해야한다. 교착 상태가 발생할 수 있는 여러 경우가 있는데 그 중 시스템 자원, 공유 변수, 응용 프로그램을 사용할 ..
-
프로세스 간 통신(IPC)란 무엇인가CS지식/운영체제 2021. 6. 6. 23:18
프로세는 시스템 내에서 자신이 가진 code, stack, data를 쓰면서 독립적으로 실행되기도 하지만 프로세스끼리 서로 데이터를 주고받으며 협업하기도 한다. 여기서 프로세스끼리 데이터를 주고받기 위해 프로세스 간 통신(이하 IPC)이 이루어지고 IPC에는 같은 컴퓨터 내에 있는 프로세스끼리 통신 뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와도의 통신도 의미한다. 이러한 프로세스 간 통신에는 여러 종류가 존재한다. 1) 전역 변수를 이용한 통신 전역변수를 이용한 통신은 공동으로 관리하는 메모리를 사용하여 데이터를 주고받는 것으로 송신측은 전역변수에 데이터를 쓰고, 수신측은 전역변수의 값을 읽어 통신이 이루어진다. 주로 직접적으로 관련이 있는 프로세스 간에 사용되는 통신방식이다. 예를 들어..
-
CPU 스케줄러란 무엇인가CS지식/운영체제 2021. 6. 3. 22:19
프로세스를 배우면서 프로세스는 생성, 준비, 실행, 대기와 같은 여러 상태를 가지며 작업이 이루어진다고 했다. (프로세스 개념: https://straw961030.tistory.com/71?category=925290 ) 프로세스(Process)란 무엇인가 프로세스가 무엇인지 찾아보면 흔히 실행 중인 프로그램이라고 말한다. 이렇게 개념을 기억하고 넘어가기에는 부족하고 프로세스가 정확히 무엇인지 알고싶었다. 프로세스라는 단어가 나오게 straw961030.tistory.com 메모리에는 여러 프로세스가 존재할 수 있고 여러 프로세스의 상태를 관리해주는 역할을 하는 것이 필요하다. 이러한 역할을 해주는 것이 CPU 스케줄러이다. CPU 스케줄러는 프로세스가 생성되고 종료될 때까지 모든 상태 변화를 관리하는..
-
스레드란 무엇인가(공룡책에서 귀여운 곰책으로 변경)CS지식/운영체제 2021. 5. 31. 23:13
오늘은 지난 시간까지 운영체제를 공룡책으로 공부하다가 효율성이 떨어져 책을 변경했다. 효율성이 떨어진다고 생각하는 이유는 내가 독학으로 책을 읽으며 '아 이렇구나'하면서 읽히는 수준이 아니다.. 그러면 3일동안은 어떻게 공부했나? 일단은 반효경교수님의 강의를 들은 상태여서 3장(프로세스)까지는 책을 읽으면서 새로운 지식을 얻을 수 있는 정도였다. 하지만, 그 뒤로는 너무 내용이 심오하고 번역본이라 이해하기 힘들게 쓰여진 것도 있고 너무 어렵게 느껴졌다. 그래서 책을 바꿔야겠다는 생각을 가지고 도서관을 갔다. 운영체제 책 종류가 많지는 않았지만 나에게 맞는 책을 발견해 빌려왔다. 책의 목차를 보면 알아야할 내용은 다 담고 있는 것같았고 설명도 전공책처럼 딱딱하게 쓰여지지 않고 예시를 들며 설명을 해줘서 이..
-
프로세스(Process)란 무엇인가CS지식/운영체제 2021. 5. 28. 22:48
프로세스가 무엇인지 찾아보면 흔히 실행 중인 프로그램이라고 말한다. 이렇게 개념을 기억하고 넘어가기에는 부족하고 프로세스가 정확히 무엇인지 알고싶었다. 프로세스라는 단어가 나오게 된 배경은 모든 CPU 활동들을 어떻게 부를지에 대한 의문이 생겼고 그 해답으로 프로세스라는 말을 사용한 것이다. 우리가 사용하는 PC에서는 브라우저, 카카오톡, 워드 프로세서 등 여러 프로그램을 한 번에 실행할 수 있다. 이러한 상황 외에 다중 태스킹을 지원하지 않는 임베디드 장치에서도 내부 프로그램을 지원하며 동작한다. 여기서 CPU가 하는 모든 활동들을 프로세스라고 부르는 것이다 프로세스는 자신이 어떠한 활동을 하는지 현재 상태를 나타내기 위해 프로그램 카운터와 프로세서 레지스터를 사용한다. 프로그램 카운터는 다음에 실행될..
-
시스템 콜(System Call)이란 무엇인가CS지식/운영체제 2021. 5. 25. 23:03
시스템 콜은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공한다. 즉, 자신이 하지 못하는 일(운영체제는 가능한 일)을 운영체제에게 맡겨 수행할 수 있도록 하기위해 시스템 콜을 사용한다. 시스템 콜이 어떻게 사용되는지 예시를 통해 알아보자. 프로세스A는 디스크에 존재하는 파일1에서 데이터를 읽어서 파일2로 복사하는 일을 수행해야한다고 생각해보자. 파일1, 파일2가 무엇인지 사용자로부터 입력받기 위해서는 시스템 콜이 필요하다. 키보드의 입력을 통해 파일의 이름을 얻거나 마우스를 통해 직접 파일을 선택해서 입력받을 수 있다. 이러한 I/O작업을 위해서는 시스템 콜이 필요하다. 파일1, 파일2이 무엇인지 입력을 받으면 파일1을 디스크에서 가져오고 복사하여 파일2에 저장하는 작업도 시스템 콜이..
-
인터럽트(Interrupts)란 무엇인가(공룡책 공부 시작!!)CS지식/운영체제 2021. 5. 22. 22:21
지난(5월 18일) 반효경 교수님의 운영체제 강의를 완강하고 오늘부터는 강의를 통해 배운 내용을 다시 정리하고 추가적으로 더 공부하기 위해 운영체제의 바이블이라고 불리는 공룡책을 빌려서 공부를 시작했다. 나의 목표는 하루에 한 장(종이 한 장이 아니라 목차에서 의미하는 장, 약 50페이지 정도)를 목표로 하고 이전 방식처럼 네트워크, 운영체제, 데이터베이스를 하루에 한 과목씩 로테이션으로 공부할 것이다. 인터럽트라는 것은 무엇이고 무슨 역할을 할까? 우리는 실행 중인 프로그램을 프로세스라고 배웠다. 프로세스 중에는 디스크에서 정보를 읽거나 쓰는 일을 수행하기도 하고 키보드를 통해 입력을 원하기도 하고 모니터에 화면을 띄우는 일도 원하기도 한다. 이러한 경우에 프로세스가 I/O장치(키보드, 마우스 ,모니터..