운영체제
-
폴링(Polling) vs 인터럽트(Interrupt)운영체제 2020. 5. 18. 13:38
폴링 방식 폴링이란 CPU가 작업을 진행하다 입출력 명령을 만나면 직접 입출력 장치에서 데이터를 가져오는 방식이다. CPU가 직접 일을 하기 때문에 입출력을 하는 동안 다른 일은 못한다. 따라서 입출력이 처리되는 동안 기다려야 되는데 시간이 오래 걸리며 작업 효율이 떨어져 현재는 사용하지 않는다. 또한 정해진 시간이나 주기적으로 체크하는 방식으로 과거에는 작업 개수가 적었을 때 가능했던 방식이 오늘날 다양한 프로세스 처리에는 알맞지 않다. 인터럽트 방식 인터럽트란 어떠한 주변장치들의 입출력이나 하드웨어 문제, 프로그램에서 예외 등이 발생했을 때 CPU에게 이를 알려주는 방식이다. 보통 인터럽트는 인터럽트 벡터를 통해서 발생 여부를 체크한다. vector형태의 자료구조로 구현 가능하다고 한다. 또한 각각의..
-
컴퓨터 시스템 정리 (분산 시스템, 병렬 시스템, 클러스터 시스템, Real-Time 시스템, Handled 시스템)운영체제 2020. 4. 20. 16:11
병렬 시스템(Parallel System) 다중 프로세서(Multi Processors) 시스템이다. 2개 이상의 CPU가 각자 맡은 역할을 수행하는 개념으로 이해하는 것이 쉽다. Tightly coupled system - 프로세서들이 메모리와 클락을 공유하면서 사용한다. 2가지 구조가 있다. 대칭 구조(Symmetric multiprocessing, SMP) 각각의 프로세서가 동일한 운영체제 사본을 가지고 수행한다. 또한 많은 프로세서가 퍼포먼스가 나빠지지 않으며 한 번에 수행된다. 대부분의 OS가 이를 지원하고 있다. 비대칭 구조(Asymmetric multiprocessing, AMP) 각각의 프로세서가 각자의 역할이 존재하며, 마스터(master)프로세서와 노예(slave) 프로세서들로 구성되어..
-
프로세스의 상태 총 정리 (Process Status)운영체제 2020. 4. 19. 00:28
오늘은 프로세스의 상태에 대해서 공부한 것을 정리하고자 글을 씁니다. 우선 ready와 wait의 구별이 아직 잘 안 되고 현재 컴퓨터의 시분할 시스템에서 CPU time quantum을 프로세스가 어떻게 가져가는지 다시 한번 정리하여 제 것으로 만들고자 글을 작성합니다. 우선 프로세스에 대해서 다시한번 정리를 해보겠습니다. 여기에 잘 정리하였지만 간략하고 핵심만 다시 써보겠습니다. 프로그램(Program)과 프로세스(Process),프로세서(Processor) 구분하기!!! 본인은 소프트웨어 개발자가 되기 위해 공부 중인데요. 프로그램이라는 것은 어릴 때부터 아니면 꼭 IT분야가 아니더라도 자주 들었던 말입니다. 그런데 프로세스는 전공을 공부하면서 알게 되었지만 명확한 구분.. enlqn1010.tis..
-
PCB(Process Control Block)는 무엇일까? 어디서 쓰나?운영체제 2020. 4. 10. 16:37
프로세스는 어떤 식으로 자신을 저장하며 CPU가 이런 프로세스를 제어하는 방법이 궁금했다. 각각의 프로세스는 PCB라는 프로세스 컨트롤 블록을 가지고 위에 일을 할 수 있다고 배우게 되었다. 그렇다면 PCB에는 어떤 것들이 있으며 어떻게 쓰이는지 정리해 보겠다. PCB(Process Control Block)이란? 프로세스 컨트롤 블록. 즉, 프로세스를 관리하기 위해서 다양한 정보를 저장해 두고 이를 가지고 제어를 할 수 있도록 하는 운영체제 커널의 자료 구조이다. "운영체제가 프로세스를 표현했다." 라고 말할 수 있다. [ 구성 ] 1. Process Id : pid값을 저장. 즉 프로세스의 특정 번호를 저장한다. c++>> #include에 pid_t 라는 데이터 타입에 pid값을 저장할 수 있다고 ..
-
프로그램(Program)과 프로세스(Process),프로세서(Processor) 구분하기!!!운영체제 2020. 3. 19. 18:33
본인은 소프트웨어 개발자가 되기 위해 공부 중인데요. 프로그램이라는 것은 어릴 때부터 아니면 꼭 IT분야가 아니더라도 자주 들었던 말입니다. 그런데 프로세스는 전공을 공부하면서 알게 되었지만 명확한 구분이 되지 않았기에 이번 글로 깔끔하게 정리해보려고 합니다. 우선 가장쉬운 프로그램의 정의를 내리겠습니다. 프로그램(Program)이란? 소프트웨어의 한 가지로써 어떤 문제를 해결하기 위하여 그 처리 방법과 순서를 기술하여 컴퓨터에 주어지는 일련의 명령문 집합체를 뜻한다. 쉽게 말해, 사용자의 명령에 반응하는 소프트웨어를 프로그램이라 한다. (나무 위키 - 프로그램의 정의) 조금 더 와 닿도록 설명하자면 컴퓨터를 다루어 본 누구나. exe파일을 보신 적이 있을 것입니다. 이런 형식의 파일을 실행파일이라고 하..