본문 바로가기

운영체제

(4)
[운영체제]5. Process(2) Thread란 무엇일까요 ? 음.. 이렇다고 한다. 전 포스팅에서 올렸듯이. 프로세스가 생성되면 아래처럼 stack, data, code영역이 생성된다. [스레드의 탄생 이유] 그리고.. 이 만들어진 프로세스를 관리하기 위해서 운영체제 data 부분에 PCB(Process Control Block)을 하나 만들어두어서 관리를 한다고 했었다.이 프로세스의 상태와 프로세스 ID, 프로그램 카운터(메모리 어느부분을 실행하는가?)등이 이 PCB에 존재한다.만약에, 동일한 일을 처리하는 프로세스가 여러개 있다고 가정할경우, 이러한 주소공간이 그 프로세스의 수만큼 만들어지게 될것이고, 이것은 결국 메모리의 낭비를 가져오게 된다. [스레드 탄생 결과] 같은일을 하는 프로세스를 여러개 띄워놓고 싶으면 주소공간은 하나만..
[운영체제]4. Process(1) 프로세스란 ? 실행중인 프로그램 문맥이란 ? 전체적인 문장구조 속에서 파악하는것!프로세스의 문맥(context) : 프로세스가 진행되는동안 여러 동작이 진행된다. 그 과정 속에서 어느 시점에 프로세스가 어느정도 진행되었는가.. 등을 규명하는데 필요한 요소 (프로세스의 현재 수행 상태를 나타내는데 필요한 모든 요소)1. CPU 수행 상태를 나타내는 하드웨어 문맥 ex) Program Counter , 각종 register 어디를 가르키고있고, 어떤 값을 가지고 있었는가?2. 프로세스의 주소공간 ex) code, data, stack에 어떤 내용이 들어 있는가?3. 프로세스 관련 커널 자료 구조 ex) PCB(Process Contrl Block), Kernel stack 프로세스 마다 커널 스택을 별도로 ..
[운영체제]3. System Structure & Program Execution(2) PC(Program Counter) -CPU에는 여러 레지스터들이 존재하는데, 그 중 PC(Program Counter)는 CPU가 다음 인스트럭션을 읽어와야 할 주소가 적혀있다.보통 인스트럭션 하나가 4바이트를 감안했을때, PC는 한 공간에 4바이트씩 저장이 되어있고, 그 인스트럭션을 CPU가 순차적으로 읽게된다.컴퓨터가 실행되면 cpu는 항상 pc에 따라서 다음일만 처리할 뿐이다. 위의 그림처럼 pc에 있는 내용을 1,2,3,4,5 순으로 순차적으로 처리하다가 그 중간중간에 Interrupt line에서 체크를 하게되고, 인터럽트가 들어왔다면, cpu는 하던 작업을 멈추게되고 , cpu의 제어권이 운영체제로 넘어가게 된다 (mode bit = 0)그 후 운영체제는 왜 인터럽트가 걸렸는지 운영체제 내부..
[운영체제]2. System Structure & Program Execution -컴퓨터 시스템 = (CPU + Memory) + IO Device + (각종 Controller, timer, buffer , , , 등등)input = IO 디바이스의 실행들을 컴퓨터 안으로 입력하는것.output = 메모리에서 처리한 데이터를 받아 다시 IO 디바이스로 넘기는것 CPU - 중앙처리장치로써, 메모리가 CPU를 점유하여 사용할 수 있다. CPU에서는 매 클럭마다 메모리의 인스트럭션을 읽어서 실행시킨Memory - 기억장치로, 실제 프로그램을 실행하는 영역, cpu를 이곳에서 점유하여 사용한다. 운영체제(OS)와 실행한 프로그램이 이곳에 있다.IO장치 - 컴퓨터가 요청한 내용을 입력하고나, 컴퓨터에서 요청된 내용을 보여주는 장치 CPU 안에는 Register과 Mode bit, inter..

Today :
Yesterday :
Total :