운영체제(6)
-
프로세스 스케줄링의 목적, 기준, 단계, 방법
프로세스 스케줄링 내 나이 28살, 오래 살았다고 생각하진 않지만 인생사에서 무엇인가를 선택하는 것은 굉장히 중요하다고 말할 수 있다. 우리는 살면서 항상 선택의 기로에 놓인다. 왜냐하면 수 많은 선택지도 있지만, 중요하다고 생각하는 선택지가 한 개만 있는 것은 아니기 때문이다. 굉장히 일상적인 예시를 들자면, 중국집에서 메뉴를 고를 때도 우리는 흔히 짜장면과 짬뽕 중 무엇을 선택할 건지에 대해 항상 고민한다. 본론으로 돌아와보자. 중요한 선택을 해야하는 것은 운영체제도 마찬가지인 것 같다. 프로세스의 정의를 기억하는가? 프로세스는 작업이 커널에 등록된 상태를 얘기한다. 예를들어 CPU 한 개에 프로세스가 두 개가 있는 경우, 각 프로세스는 CPU 1개에 존재하는 자원을 번갈아가면서 사용해야한다. 즉, ..
2020.10.28 -
스레드 관리
스레드 이전 포스팅(인터럽트)에서 나는 인터럽트와 문맥교환(Context Switching)에 대해 이야기를 했다. 운영체제는 문맥교환을 통해 이전에 작업했던 프로세스를 이어서 작업할 수 있지만, 너무 잦은 문맥교환은 오버헤드와 비용을 증가시킨다. 이 문제를 해결하기 위해서 운영체제는 스레드라는 단위를 관리하게 된다. 그렇다면 스레드는 무엇인가? 스레드를 설명하기 위해서 상위개념인 프로세스라는 것을 가져오려고 한다. 프로세스는 요청받은 작업이 커널에 등록된 상태를 말한다. 간단히 실행중인 프로그램이라고 말할 수 있다. 프로세스가 하는 일은 두 가지 요소로 나눌 수 있는데, 첫째는 자원을 할당받는 것이고, 둘째는 할당받은 자원을 제어하는 것이다. 이 요소 중에 제어부분만 따로 떼어놓은 것을 스레드라고 한다..
2020.10.07 -
인터럽트
1. 인터럽트 공부를 할 때, 혼자서 하는 것보다 친구랑 같이하면 집중력은 덜 할지 몰라도 재미있다. 왜냐하면 공부가 안될 때 친구를 콕 찔러서 같이 놀다오면 되기 때문이다. 여기서 친구는 내가 콕 찌른다는 행동을 언제 할지 예상할 수 있을까? 없을 것이다. 이렇게 예상치 못하고 외부에서 발생한 이벤트를 인터럽트라고한다. 인터럽트의 종류는 다음과 같다. 입 출력(I/O) 클럭(Clock) 콘솔 프로그램 Machine Check Inter-Process System Call 일반적으로 7개 종류의 인터럽트가 있지만, 인터럽트의 처리과정은 대략적으로 다음과 같을 것이다. 위 과정을 좀 더 자세하게 설명해보면 다음과 같다. 지금 사용자는 어떤 프로그램을 실행시키는 중이다. 그 실행 중인 프로그램 즉 프로세스를..
2020.10.06 -
운영체제 구분
운영체제 구분 운영체제는 동시 사용자 수, 작업수행방식 두 기준으로 분류 된다. 1. 동시 사용자 수 (1) 단일 사용자 시스템(Single-User-System) 단일 사용자 시스템은 컴퓨터 시스템에 대해 한 순간에 한 사용자만이 사용할 수 있으므로 시스템 보호를 어렵제 않게 할 수 있다. 하지만 메모리 영역을 다른 사용자가 동시에 사용할 경우, 각 메모리 영역이 침범당할 수 있으므로 데이터 보존문제가 발생한다. (2) 다중 사용자 시스템(Multi-User-System) 다중 사용자 시스템은 동시에 여러 사용자들이 한 컴퓨터 시스템을 사용할 수 있도록 하는 시스템이다. 여러 사용자 파일이 하나의 시스템에 혼합되어 저장되므로 이를 구분할 수 있는 시퀀스 작업이 필요하며, 보안 문제에 있어 단일 사용자 ..
2020.10.02 -
Computer System Overview(컴퓨터 시스템 개요)
1. 운영체제 운영체제는 하드웨어 자원과 시스템을 효율적으로 관리해서 사용자에게 서비스를 제공하는 시스템 소프트웨어다. 컴퓨터 장치가 들어있는 모든 기기에는 운영체제라는 시스템 소프트웨어가 탑재되어있다고 생각하면 된다. 최근에는 시계. 자동차, TV 등 컴퓨터가 탑재된 것들이 나오고 있고, 이에 맞는 운영체제들도 출시되고 있다. 출시보다는 범위가 확장된다는 표현이 맞는 것 같다. 아무튼, 우리는 운영체제가 하드웨어 자원을 관리한다는 것을 주목할 필요가 있다. 왜냐하면 이번 포스팅에서 이 부분을 전체적으로 간략히 다룰 것이기 때문이다. 그렇다면 운영체제가 관리하는 하드웨어는 무엇이 있을까? 운영체제는 크게 세 가지의 하드웨어를 관리한다. 프로세서 메모리 주변장치 프로세서는 우리가 흔히 알고있는 CPU, G..
2020.09.29 -
정리하기 앞서
이제 어느덧 취업준비기간이 10개월을 향해간다. HTML, CSS, 자바스크립트, SCSS, Node.js, React, 자료구조 및 알고리즘, 알고리즘 풀이 이 많은 것들을 공부했고 연습했다. 솔직히 아직도 부족한 것이 많다. 이 많은 것들을 한번에 하려고 하다보니 조급함이라는 것이 증폭되더니 번아웃이라는 결과물이 나한테 왔다. 일주일 정도 쉬고, 현재 상황을 보니 컴퓨터 과학이 되게 부실하다는 것을 알게됐다. 그래서 학부때 공부를 했던 운영체제를 다시한 번 강의를 들으면서 정리해볼까 한다. 정리 방식은 나의 모교인 한국기술교육대학교의 운영체제 유튜브 강의를 주 자료로, 나머지 참고자료를 보조로하여 챕터마다 정리하려고 한다. 하루에 한 번 공부했던 것들을 올리는 것이 목표다. 이 활동이 번아웃 극복의 ..
2020.09.28