본문 바로가기

운영체제/기본

운영체제 - Hardware Protection 운영체제 - Hardware Protection Multi-programming OS에서도 예를 들었듯이, Job-A가 Job-B에게 할당된 메모리에 접근하거나 운영체제에게 할당된 메모리에 접근해서는 안 된다. 이것을 위해 Privileged Instruction이라는 개념을 도입했다.* Privileged Instruction : 운영체제만 수행할 수 있는 Instruction. # Dual Mode operation- 컴퓨터 시스템의 모드를 2가지로 나누어 권한레벨을 나눈다. 일반적인 프로그램이 수행될 때는 User mode로 수행되며 보다 높은 접근권한을 요구할 때는 Kernel Mode로 수행된다1) Kernel Mode- privileged instruction을 수행할 수 있는 모드- 모든 m..
운영체제 - Interrupt Mechanism 운영체제 - Interrupt Mechanism Interrupt Mechanism- 하드웨어에 의해 CPU의 control을 ISR(Interrupt Service Routine)으로 이동시키는 것.- 운영체제가 존재하기 위해 컴퓨터 하드웨어가 제공해야 하는 가장 중요한 메커니즘이다.- 운영체제는 Interrupt-driven이다. + 비동기(Asynchronous) 메커니즘이다.+ Interrupt가 발생하면 해당 Interrupt Source에 대한 ISR을 수행한다. Interrupt의 종류1) H/W Interrupt- I/O controller, DMA controller와 같은 하드웨어에 의해 발생한 인터럽트.* Interrupt Source?> I/O controller, DMA contr..
운영체제 - 컴퓨터구조 기본 운영체제 - 컴퓨터구조 기본 컴퓨터 하드웨어 장치(=I/O device)는 서로 "BUS"를 통해서 서로 연결되어 있다. 또한, 각 I/O device와 CPU간의 통신을 위해 각각의 I/O device는 자신만의 I/O controller를 갖는다. 예를들어, DRAM(main memory)를 위한 I/O Controller로 DRAM controller가 존재한다. 이러한 BUS는 3가지의 종류로 나뉜다.1) Data BUS : 실제 data의 이동2) Address BUS : 이동시키고자 하는 data의 address3) Control BUS : read or write BUS를 통한 데이티의 이동은 Bus Master(주체), Bus Slave(객체)로 나뉜다.ex. CPU DRAM, CPU I/..
운영체제의 역할 운영체제의 역할- 운영체제의 역할은 크게 3가지로 나뉜다.(1) 컴퓨터 하드웨어 자원(CPU, memory, I/O device)의 중재자 역할(2) 하드웨어 Interface 제공(3) Standard Library 제공 (1) 컴퓨터 하드웨어 자원(CPU, memory, I/O device)의 중재자 역할multi-programming을 지원하는 운영체제에서는 각 task들이 하드웨어 자원을 운영체제에게 요청하며 서로 경쟁하게 된다. 이러한 상황에서 운영체제는 각각의 task들이 정상적으로 수행될 수 있도록 CPU, memory 등 하드웨어 자원을 적절히 분배한다. 하드웨어 자원의 종류에 따라 위와 같이 분류할 수 있다.1. CPU scheduler2. Memory Management System.3..
운영체제의 발전(4) - 현대 운영체제 시스템의 등장 운영체제의 발전(4) - 현대 운영체제 시스템의 등장 Internet이 등장하고 사용자들이 Internet 서비스를 요구하였으므로 하드웨어 및 운영체제는 Internet를 지원(support)하는 방향으로 발전했다.이를 위해 운영체제에 TCP/IP를 탑재하고 하드웨어에는 NIC(Network Interface Controller)가 등장했다. 또한, 현대 Application은 multi-media이므로 운영체제는 multi-media를 지원해야 했다.멀티미디어의 예로 동영상 재생이 있는데 이것은 30 frames / sec 의 연산을 요구한다. 그러나, 이전 운영체제의 스케쥴링(scheduling)방식은 우선순위 기반 스케쥴링이여서 이것을 원활이 지원할 수 없었다. 이 문제를 Bandwidth Sche..
운영체제의 발전(3) - Interactive Time-sharing OS 운영체제의 발전(3) - Interactive Time-sharing OS multi-programming OS를 거쳐 트랜지스터, IC칩이 발전하며 컴퓨터 하드웨어 비용은 값싸지고 상대적으로 인건비가 비싸졌다.기업체는 비싼 인건비로 인해 Human Idle time을 줄이고자 했다. 즉, 직원 개개인에게 Terminal을 배부했다. * Terminal- 중앙의 컴퓨터와 연결되어 데이터를 입력하거나 출력할 수 있는 하드웨어 장치 사용자들은 Terminal 장치를 이용하여 하나의 컴퓨터 CPU를 서로 공유하는 방법으로 사용자 interactive한 경험을 했다.즉, 운영체제가 각각의 사용자들에게 사용시간을 단위로 쪼개어 나누어 줌으로써 Time-sharing하였다.- Interactive Time-shar..
운영체제의 발전(2) - Multi-programmed Batch Monitor 운영체제의 발전(2) - Multi-programmed Batch Monitor multi-programmed- 컴퓨터가 한번에 한 개 이상의 active한 Job을 수행시킨다는 의미.( active Job? 수행을 시작했지만 아직 종료되지 않은 프로그램 ) multi-programming- 컴퓨터 시스템의 메인 메모리에 동시에 여러 개의 active job이 존재하는 것. OS Job-1 Job-2 Job-3 Job-4 * degree of multi-programming- the number of active job in main memory. multi-programming을 이용하여 CPU가 Job-A를 수행하다가 synchronous I/O operation을 만나면..
운영체제의 발전(1) - Batch Monitor 운영체제의 발전(1) - Batch Monitor 50~60년대의 컴퓨터는 ENIAC 으로써 카드 덱(card deck)을 컴퓨터에 입력하는 방식으로 연산이 이루어졌다. 그 때 당시에 이 카드 덱 연산을 관리하는 주체는 사람(Human)이었기 때문에 하나의 Job을 수행한 뒤 다른 Job의 수행으로 넘어가는 데 많은 시간이 소모되었다.- Job-to-Job transition에 너무 많은 시간이 소모되어 CPU utilization이 떨어졌다.* Job : 프로그램 최소 실행 단위 따라서, 초기 운영체제(operating system)은 이러한 Job-to-Job transition 속도를 향상시켜 CPU utilization을 증가시키는 것이 주된 목적이었다.그 목적을 달성한 최초 운영체제가 Batch..