CS/운영체제

1. Thread 스레드란, 프로세스 내부에서 실행되는 작은 작업 단위를 말합니다. (1) Thread가 쓰이게 된 배경 프로세스가 하나 생기면 code, data, stack으로 구성된 주소 공간이 프로세스 별로 메모리에 만들어집니다. 그리고 그 프로세스 하나를 관리하기 위해서 운영 체제 내부에 PCB라는 것을 두고 있습니다. PCB에는 사진과 같이 프로세스의 상태, 식별 ID, 현재 메모리의 어느 부분을 실행하고 있는지 가르키는 program counter 등이 있습니다.  만약 동일한 일을 하는 프로세스가 여러 개 있다고 가정하면, 프로세스마다 별도의 주소 공간이 만들어져서 메모리가 낭비됩니다.   같은 일을 하는 프로세스를 여러 개 띄워놓고 싶으면, 메모리 공간만 하나 띄워놓고 각 프로세스마다 다..
1. PCB (Process Control Block)운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보를 말합니다. PCB를 구성하는 것은 사진과 같이 4가지 정도로 나눌 수 있습니다. (1) OS가 관리상 사용하는 정보Process state, Process IDScheduling information 프로세스의 상태(Ready, Blocked, Running 등), 프로세스를 식별하기 위한 ID, 그리고 프로세스에서 CPU를 주기 위한 스케줄링 정보 등이 있습니다. 앞선 포스팅에서 CPU에 queue형태로 프로세스가 대기하는 것을 볼 수 있었는데, 정확히는 먼저 온 순서가 아닌 우선순위가 높은 순서로 실행이 됩니다. (2) CPU 수행 관련 하드웨어 값Program CounterRegi..
1. 프로세스의 문맥(context)프로세스는 한 마디로 실행 중인 프로그램을 말합니다.그런데 이 프로세스를 이해하기 위해서 중요한 것이 하나가 있는데 바로 프로세스의 문맥(context)입니다.  프로세스 문맥에 대해 간단히 설명드리자면, 프로그램이 실행 중 어떤 시점에서의 정확한 상태를 규명하기 위해 필요한 요소들을 프로세스 문맥이라고 합니다. 프로그램 실행 중에 어떤 한 시점을 놓고 봤을 때, 프로세스가 어디까지 무엇을 실행을 했는지, 현재 어떤 단계까지 실행을 한 상태인지를 정확하게 나타내기 위해 사용되는 개념입니다. (맥락을 파악한다고 생각하면 이해가 쉽습니다.)  프로세스의 문맥은 크게 세 가지로 설명할 수 있습니다. 1. CPU 수행 상태를 나타내는 하드웨어 문맥Program Counter ..
1. 동기식 입출력(synchronous I/O)I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가는 방식입니다.  그림에는 user와 kernel 두 가지로 나뉘어진 것을 확인할 수 있습니다. 이전 포스팅에서, 만약 user 부분에서 I/O작업을 진행하려면 I/O작업은 커널에서 수행하기에 사용자 프로그램이 I/O작업을 진행할 수 없다고 했습니다.   그래서 사용자 프로그램은 운영체제의 커널에 I/O 요청을 하게 됩니다. 이후 해당 I/O에 맞는 Device driver를 거치게 되고, Device Controller를 통해 입출력 작업을 하게 됩니다. 작업이 끝나면 Device Controller 가 CPU에게 인터럽트를 걸어 작업이 완료되었다는 것을 알리고 사용자 프로그램의 ..
1. 컴퓨터 시스템의 일반적인 구조컴퓨터 시스템의 일반적인 구조는 아래와 같습니다.CPU, memory로 이루어진 것이 우리가 일반적으로 이야기 하는 컴퓨터이고,disk, mouse, keyboard, monitor는 I/O device로 호스트의 컴퓨터에서 데이터를 컴퓨터 안으로 입력하는 것과 데이터를 출력하는 역할을 하는 장치입니다.  조금 더 구체적인 컴퓨터 시스템의 구조는 아래 사진과 같습니다.이번 포스팅에서는 위 사진에서 I/O Device와 관련된 구조, interrupt, mode bit, timer, DMA controller를 알아보겠습니다.  우선 I/O Device와 관련된 구조부터 간단히 살펴보겠습니다. 각각의 Device에는 디바이스를 전담하기 위한 Device Controller..
1. 운영체제(Operating System, OS)란?컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 의미합니다.만약 운영체제 없이 컴퓨터 하드웨어만 있다면 일반 사용자들이 사용하기가 매우 어렵기 때문에, 사용자들이 운영체제를 통해 하드웨어에 접근함으로써 쉽게 사용할 수 있습니다. 운영체제의 역할을 좀 더 이해하기 위해 두 가지 관점에서 역할을 살펴보겠습니다. 1. 시스템 관점 : 컴퓨터 시스템의 자원을 효율적으로 관리하게 해줍니다.프로세서, 기억장치, 입출력 장치 등의 효율적 관리사용자 간의 형평성 있는 자원 분배주어진 자원으로 최대한의 성능 발휘사용자 및 운영체제 자신의 보호프로세스, 파일, 메시지 등을 관리 2. 사용자 관점 : 컴퓨터 시..
동구름이
'CS/운영체제' 카테고리의 글 목록 (6 Page)