목록OS (3)
DNF LOVE
컴퓨터 Process가 실행될 때 가장 중요한 부분은 어디일까? 어쩌면 당연한 이야기겠지만 Memory와 CPU이다. 우리는 프로그래밍 언어를 배우면서 정적변수, 지역변수 등을 나뉘며 이 둘은 다른 메모리 영역에 적재된다는 것을 스쳐가듯 배웠을 것이다. 그렇다면 각 데이터들은 어느 메모리에 적재되는 것일까? 이것은 어떤 OS 책을 읽나 기본적으로 보여주는 메모리 영역 그림이다. Code, Data, Stack영역은 컴파일러가 알아서 메모리 영역을 결정해준다. 그러나 반대로 Heap영역은 개발자에 의해 프로그램 동작 시(RunTIme) 메모리에 데이터가 적재되는 특징을 갖고 있다. 각 영역은 어떤 데이터를 담고 특징을 갖고있는지 알아보도록 하자. 1. Code 영역 : 코드(=Text) 영역은 간단하게 실..
1. 컴퓨터 시스템 연산(Computer-System Operation) 현대 컴퓨터 시스템은 하나 이상의 CPU와 여러 장치 제어가를 공용 버스(하드웨어를 제어하는 흐름)로 연결된다. 공유 메모리에 접근할 수 있도록 공통 버스로 연결한다 CPU와 장치는 병행 수행하기 때문에 메모리를 사용하기 위해 경쟁을 한다.(그래서 OS가 이를 관리한다.) 공유 메모리에 대한 질서 있는 접근을 보장하기 위해 메모리 제어기가 메모리 접근을 동기화 시킨다. 컴퓨터가 시작하기 위해서 실행시킬 초기 프로그램을 가지고 있어야 한다. 이를 Booststrap Program이라 한다. 전형적으로 ROM(Read-only Memory - 비휘발성, 한번 쓰면 수정이 안된다.) 또는 EPROM(Electrically erasable..
1. 컴퓨터 시스템 : 하드웨어, 운영체제, 응용 프로그램 및 사용자 네 가지 구성요소로 구분된다. 하드웨어란? 중앙처리장치(CPU), 메모리 및 입출력 장치(I/O)로 구성되어 기본 계산용 자원을 제공한다. 응용프로그램이란? 워드 프로세서, 스프레드시트, 컴파일러, 웹 브라우저 등의 사용자의 계산 문제를 해결하기 위해 이들 자원이 어떻게 사용될지를 정의한다. 운영체제는 다양한 사용자를 위해 다양한 응용프로그램 간의 하드웨어 사용을 제어하고 조정한다. 즉, 운영체제(Operating System)란? 컴퓨터 사용자와 컴퓨터 하드웨어 사이의 중개자 역할을 하는 SW이다. 사용자 프로그램을 실행하고 사용자 문제를 보다 쉽게 해결할 수 있도록 하기 컴퓨터 시스템을 사용하기 편리하게 하기 컴퓨터 하드웨어를 효율..