<쓰레드>

서로 독립적인 일들을 불필요하게 순차적으로 수행하는 일을 개선하기 위해 프로세스보다 작고 독립적으로 스케줄링이 가능한 것이 쓰레드이다.



 

다중 스레딩이란 하나의 프로세스를 다수의 스레드로 만들어 실행하는 것인데, 작업의 수행에 필요한 자원들을 공유하기 때문에 자원의 생성과 관리가 중복되는 것을 줄일 수 있다.

스레딩의 개념을 쉽게말해 어떤 프로세스가 실행되는데 그 안에 열심히 일하는 일꾼이라고 생각하자.




 

스레드는 스레드 제어블록을 가지고 있으며, 스레드 제어블록은 실행 중 레지스터 값, 우선순위, 스레드와 관련된 상태 정보를 갖고있다. 사용자 스택과 커널 스택을 가지고있는데, 사용자 주소 공간과 PCB를 공유함으로써 다른 스레드들이 데이터를 변경하면 다른 스레드들에게도 공유된 자원이기 때문에 같이 변경된다. 이로인해 프로세스 단위로 이루어 질때보다 빠르고 저렴하다.

프로세스간 통신은 커널의 개입이 필요하지만(메모리 할당, 수거 등...), 한 프로세스 내의 스레드 간의 통신은 메모리와 파일을 공유하기 때문에 커널의 개입이 필요 없다.




<스레드의 종류>

스레드도 실행, 준비, 대기와 같은 상태를 가지지만 보류는 프로세스 단위의 개념이다. (메모리에 swapping해야하기 때문에 커널이 개입됨)

 

1. 사용자 레벨 스레드

스레드 라이브러리에 의해 관리되며, 스레드와 관련된 모든 행위는 사용자 공간에서 이루어지므로 커널은 스레드의 존재를 알지 못한다. , 커널은 특정 프로세스에 속한 스레드들 각자가 일으키는 행위를 그 스레드가 속한 프로세스의 행위로 인식한다.

특정 스레드의 실행에서 대기는 자신이 소속된 프로세스의 대기를 초래하며(커널은 프로세스만 보임. 프로세스가 대기로 간 것과 같다고 간주) 스레드 라이브러리에 의해 계속 실행으로 간주되고 있다가 나중에 CPU가 다시 이 프로세스에게 할당되었을 때 계속 실행해 나갈 수 있도록 해준다,

사용자 레벨 스레드는 스레드 스위칭에 커널의 개입이 필요 없으며, 유저에서 커널 모드로, 커널에서 유저 모드로의 두 번의 스위칭이 필요 없음을 말한다.

사용자 레벨 스레드의 단점은 특정 스레드의 대기가 자신이 소속된 프로세스 내의 모든 스레드들의 대기를 초래하며, CPU가 프로세스 단위로 할당되기 때문에 다중처리의 환경이 주어졌다해도 다중처리가 되지 못한다는 점이다.


2. 커널 레벨 스레드

모든 스레드의 관리를 커널이 하는 경우이다. 다중처리의 환경일 경우 한 프로세스 내의 다수 스레드는 각 처리기를 할당받아 병렬 실행이 가능하며, 한 스레드의 대기 시 같은 프로세스에 속한 다른 스레드로 스위칭이 가능하다. 단점은 같은 프로세스에 속한 스레드 간의 스위칭에도 커널의 개입이 필요해서 스위칭이 요구된다.



Copyright2014 By 휴먼사이언스

LIST

<HRRN(Highest Respone Ratio Next) 스케줄링>


수행 시간이 긴 프로세스의 무한 대기 현상을 방지하기 위한 기법이다.

준비 큐에 있는 프로세스들 중에서 응답률(Response Ratio)이 가장 높은 프로세스에게 높은 우선순위를 주며, 비선점식 방식이다.

응답률 = (대기시간 + CPU요구량) / CPU요구량

, 대기시간이 올라갈 수록 응답률이 높아진다.

이 기법을 사용하면 프로세스가 기다리는 시간이 길어질수록 우선순위가 높아지므로 수행시간이 긴 프로세스도 머지않아 CPU를 할당받을 수 있게 된다.





[프로세스에 대해 응답률을 구하는 방법]

그래서 P1 -> P2 -> P3순으로 실행시키는 것이다.



<라운드 로빈 방식>

FCFS 스케줄링을 기반으로 하여 CPU를 할당하되, 각 프로세스는 한 번에 쓸 수 있는 CPU 시간 크기 즉, 시간 할당량(Time Quantum)이 지나면 시간 종료 인터럽트에 의해 CPU를 뺏기게 되는 선점 방식이다.


 

위 그림을 보면 시간 할당량이 지나 시간 종료가 되면 다시 준비 큐의 끝에 들어가게 되고, 준비 큐의 맨 앞에 있는 프로세스가 CPU를 받게되는 방식이다. 그리고 입출력 큐에서 입출력을 마친 프로세스들은 번 경로를 따라 준비큐로 들어가도록 해주면 이것 또한 라운드 로빈 방식이 구현되는 것이다.

[계산법]

모든 프로세스들이 0초에 시작했다고 가정하자.



이 기법은 한 프로세스가 CPU를 독점하는 단점은 방지하나, CPU의 선점에 따른 문맥교환의 오버헤드를 감수해야 한다.

입출력 위주의 프로세스보다 연산위주의 프로세스를 더 우대한다. 이유는 연산 위주는 주어진 시간 할당량을 모두 소진하고 큐의 맨 뒤로 가는데 반해, 입출력 위주는 대부분 시간 할당량을 남긴 채 입출력을 발생시킨 다음 입출력이 완료되면 당시 남겨진 시간 할당량 부분을 보상받지 못한 채 큐의 맨 뒤로 들어간다.

이 기법은 대화식 시스템이나 시분할 시스템에 적합한 방식이다.

이러한 문제점을 보완하기 위해, 가상 라운드 로빈을 사용한다.

가상 라운드 로빈은 준비 큐를 따로 하나 두고 우선 순위는 더 높게 하되, 이 큐에서 CPU를 받을 때는 이전 입출력을 발생했을 때 쓰지 못하고 남긴 시간 할당량 만큼만 주도록 하는 방법이다.

 



Copyright2014 By 휴먼사이언스

LIST

<프로세스>

프로세스는 수행 중인 프로그램이다. 프로그램과 데이터를 기본으로 정상적인 실행을 위해 필요한 환경을 시스템으로부터 부여받은 능동적인 존재이다.



<프로세스 구성 요소>

프로세스는 코드(code) 영역, 데이터 영역, 스택 영역, (heap)영역으로 구성

1. 코드 영역: 프로그램의 코드 자체

2. 데이터 영역: 프로그램의 전역 변수(global variable)나 정적 변수(static variable)의 할당을 위해 존재하는 공간

3. 스택(stack) 영역: 지역 변수(local variable) 할당과 함수 호출 시 전달되는 인수(argument)



<프로세스 제어블록(Process Control Block)>

PCB는 프로세스가 시스템에 어떤 모습으로 존재하는지에 대한 정보를 테이블 모양의 자료구조로 구성되어 있다. , 프로세스에 대한 모든 정보를 가지고 있다.

[PCB 구성요소]

PID(프로세스 번호) - 프로세스의 고유의 번호

Status(프로세스 상태) - 준비, 실행, 대기, 보류 등의 상태를 나타냄

Priority(프로세스 상태) - 스케줄링을 할 때 우선순위

PC(프로그램 카운터) - 다음에 실행될 명령어의 주소 값을 가지고 있다.

메모리 포인터 - 프로그램과 데이터가 저장되어 있는 메모리 블록 위치와 메모리 블록들에 대한 포인터 정보를 가짐

문맥 데이터 - 문맥 교환 시 CPU 레지스터 값들을 저장하는 영역

할당받은 자원들에 대한 목록 - open한 파일의 할당받은 자원들의 정보

계정 정보 - CPU를 사용한 시간 등의 정보

입출력 정보 - 진행 중인 입출력 요구 등의 정보



<프로세스 상태와 변화>

프로세스의 상태에는 생성, 준비, 실행, 대기, 보류 준비, 보류 대기, 종료 상태가 있다.



 

1. 생성 상태는 사용자가 요청한 작업이 커널에 등록되고, PCB가 만들어져 프로세스가 만들어진 다음 메모리 공간을 검사하여 충분한 공간이 있으면 메모리를 할당하면서 준비상태로 가고, 공간이 없으면 보류 준비 상태로 만든다.

2. 준비 상태는 CPU를 할당받기 위해 기다리고 있는데, CPU만 주어지면 바로 실행한 준비가 되어 있는 상태이다. 다중 프로그래밍의 경우 여러개의 프로세스가 동시에 메모리가 적재되어 동작하는데, CPU를 할당받기를 기다리고 있는데 이들을 위해 큐가 사용된다.

순서에 따라 CPU를 할당받으면 실행 상태가 되는데 이때 순서를 정하는 것을 CPU 스케줄링이라고 한다.

3. 실행 상태는 CPU를 할당받아 실행 중인 상태를 말하는데, 이것을 디스패치라고 한다.

단일 CPU는 하나의 프로세스만이 CPU를 사용할 수 있어 하나의 프로세스만이 실행 상태에 있게 되는데, 여러 개의 CPU는 동시에 여러 개의 프로세스가 실행 상태에 있을 수 있는데 이것을 다중 처리라 한다.

4. 실행 상태에서 CPU를 뺏길 수 있는 경우는 2가지가 있다.

첫번째는 CPU 스케줄링 정책에 의해 CPU를 뺏길 수 있으며, 이 경우 준비상태로 바뀌게 된다. 시간 할당량(Time Quantum)이 소진되어 뺏길 때를 시간 종료라고 하는데, 이 경우도 인터럽트가 동원되어 처리된다.

두번째는 실행 상태의 프로세스가 입출력이 필요하게 되어 시스템 콜을 하면 입출력 처리의 종료를 기다리면서 대기 상태로 바뀌게 되고, CPU는 준비 상태의 프로세스들 중 하나를 선택해 CPU가 실행시켜 준다.

Time Quantum이란?

프로세스의 수명을 말한다.

5. 대기 상태는 프로세스가 실행되다가 입출력 처리를 요청하거나, 바로 확보될 수 없는 자원을 요청하면 CPU를 양도하고 요청한 일이 완료되기를 기다리면서 큐에 저장되어 대기하는 상태이다.

요청한 일이 완료되면 다시 실행 차례를 기다리기 위해 준비상태로 가는데, 이때 인터럽트를 걸어 준비상태 큐로 들어가게 된다.

5. 보류 상태는 한정된 메모리 공간의 여유가 없어지게 되면 시스템은 당분간 메모리를 회수해도 문제가 되지 않을 프로세스들을 골라 보류시켜 메모리 공간을 확보한다. 예를 들어 우선순위가 높고 급한 프로세스에게 CPU를 주어야 하는데 다른 프로세스들이 모두 메모리를 차지 하고 있을때 발생한다.

프로세스가 메모리 공간을 뺏기고 디스크로 나가야 하는걸 스왑되어 나간다(Swapped Out)라고 하고, 나중에 다시 메모리로 들어오면 스왑되어 들어온다(Swapped In)라고 하며 두 경우를 Swapping이라고 한다.

6. 보류 준비 상태는 실행상태의 프로세스가 CPU를 반납하면서 준비 상태로 바뀔 때 메모리 공간까지 잃어야 하는 경우 보류 준비상태로 바뀐다. 메모리의 여유가 생기면 준비상태로 가고, 준비 상태의 프로세스가 전혀 없을 때 대기 상태의 프로세스를 보류 대기로(? 대기상태의 프로세스들이 메모리를 모두 차지하고 있어서) 만들고 메모리 공간이 확보되면 준비 상태로 바뀌게 된다.(CPU를 놀게하지 않기 위해)

7. 보류 대기 상태는 대기 상태일 때 메모리 공간을 잃은 상태이다. 준비 상태의 프로세스가 있다고 하더라도 메모리의 여유 공간을 더 확보하기 위해서 보류 대기 상태가 되기도 한다. 보류 대기의 프로세스는 입출력이나 기다리던 사건의 종료 시 보류 준비 상태가 된다.

8. 종료 상태는 프로세스는 할당되었던 모든 자원들이 회수되고 PCB만 커널에 남아있는 상태이다.

Copyright2014 By 휴먼사이언스

LIST

<폴링>

CPU가 일정한 시간 간격을 두고 각 자원들의 상태를 주기적으로 확인하는 방식

자원들은 폴링 신호를 받은 후 자신의 상태를 CPU에게 알려 주게 될 텐데, 이 때 폴링의 간격을 적절히 정해야 한다. 동시에 각 자원들은 직전 폴링 이후 변화된 자신의 상태를 다음번 폴링 때까지는 알릴 수 없다는 점이 문제다.

아무 일이 없었는데도 CPU는 폴링에 일정량의 시간을 들여야 하는 부담도 발생한다.

<인터럽트>

각 자원들이 능동적으로 자신의 상태변화를 CPU에게 알리는 방식

채널과 중앙처리장치 간의 통신은 일반적으로 인터럽트(interrupt)에 의해 이루어짐

[동작 방법]



 

1. 장치가 CPU에게 인터럽트 신호를 보낸다. (이 때, CPU가 명령어를 실행중이면 그 명령어를 실행 완료 한 후, 인터럽트 신호를 받는다.)

왼쪽 그림은 인터럽트 직전의 상황을 말해준다. PC의 값이 N+1인 것은 현재 실행중인 명령어가 N번지에 있다는 것을 의미한다.

2. 인터럽트를 받으면 그 전까지 실행했던 프로그램이 인터럽트 처리 후 다시 실행되야 하기 때문에 현 상태의 정보값을 스택에 저장한다.

인터럽트가 시작되기 직전에 CPU에서 처리하던 정보(N+1, a,b,c,d, T)들을 제어 스택에 저장한다. 인터럽트가 시작되어 Y의 주소번지가 PC에 적재된다. 스택 포인터에는 인터럽트가 끝난 후, 프로그램이 이어서 시작되어야 하는 제어 스택의 주소를 저장한다. , T-4가 됨

3. 인터럽트 처리 루틴의 시작주소를 PC에 넣어 실행시킨다.

Y주소를 적재하여 인터럽트 시작

4. 인터럽트가 끝나면 이전에 저장했던 정보들을 재저장한 후, 프로그램을 이어서 실행한다.

인터럽트가 끝나면 Y+L+1이 저장되는데 이것은 Y+L다음의 주소값을 말한다. 그때 스택포인터에 있는 T-4를 활용해 N+1을 불러온다.



<중첩 인터럽트>

중첩 인터럽트는 두 가지가 있다.

1. 순차적 처리

인터럽트를 처리하는 동안에 발생하는 인터럽트는 현재 처리가 끝난 뒤 바로 처리해주는 방식. 순차적으로 차례대로 처리하고자 할 때 사용

2. 중첩 처리

현재 처리중인 인터럽트를 잠시 접어두고 또 다른 인터럽트로 실행을 옮길 수 있도록 하는 방식. 인터럽트의 중요도에 따라서 우선순위가 더 높은 경우 사용

 

 



 

 

Copyright2014 By 휴먼사이언스

LIST



 

1. PC (Program Counter) : 기억장치로부터 읽혀질 다음 명령어의 주소를 저장

2. MBR (Memory Buffer Register) : 기억장치에 저장될 단어를 가지고 있거나, 기억장치로부터 읽혀진 다음 단어를 저장하는데 사용

3. MAR(Memory Address Register) : MBR로부터 쓰여지거나 읽혀질 단어의 기억장치 주소를 저장

4. IR (Instruction Register) : 실행될 명령어의 연산코드를 저장

5. AC(accumulator) : 데이터를 일시적으로 보관하는 누산기

[동작 순서]

CPU는 기억장치(RAM)와 메모리를 교환한다.

1. PC가 첫 번째 명령어의 주소인 x를 가지고 있다.

2. PC에 있는 주소가 MAR로 적재

3. 이때, MAR에 있는 주소가 main memory 주소를 가리킨다.

4. 그 주소에 해당하는 값을 MBR에 저장

5. 해당하는 값을 IR한테 전달한다. 이 때 PC가 한개 증가(다음 주소를 읽어야 하기 때문...)

6. 제어장치가 명령어를 해독 후, ACdata를 저장하거나 연산.(이것은 IR에 적재되어 있는 명령어에 따라 달라짐... 명령어를 해석해보니, ACmain memory에 있는 값을 불러오라는 것일수도 있고, AC에 있는 값을 연산하라는 것일수도있다.)




Copyright2014 By 휴먼사이언스

LIST

<일괄처리(Single-stream Batch Processing Systems)>

다수 개의 프로그램을 읽어 저장해 놓는다. 대신 한 번에 한 개씩의 프로그램을 실행시켜주는 방식을 말한다. 프로그램들은 천공카드 위에 만들어지며 이렇게 만들어진 프로그램들을 카드 판독기가 읽어 저장하게 된다. 카드 판독기는 수직으로 쌓아놓고 빠르게 읽는다.



<다중처리(Multi Processing System)>

여러 개의 처리장치(CPU)를 장착하여 동시에 여러 작업을 병렬로 실행하는 것을 말한다.



<다중 프로그래밍(Multi Programming System)>

다수개의 작업이 같이 주기억 장치에 있도록 한 방식이다. 여러 프로그램을 한 번에 돌릴수 있는데, 처리기(CPU)가 한개일 수도 있고 여러개일 수도 있다.



<시분할 시스템(Time Sharing System)>

CPU가 처리해 줄 수 있는 시간을 작업 수에 맞춰 분할하여 각자에게 일정량만큼 씩 분배하여 번갈아 가며 처리한다면 실제로는 많은 작업이 있음에도 불구하고 각 작업은 CPU가 자신의 일을 계속 처리해 주고 있다는 생각을 하게된다.

예를 들어 과자50봉지를 5명의 사람에게 10봉지씩주는 것을 생각해보자.

일렬로 줄을 세워놓고, 앞사람에게 10봉지, 그다음사람에게 10봉지, 이렇게하면 마지막사람은 앞에 4명에게 10봉지씩 총 40봉지를 줄때까지 기다려야한다. 이런방법이 아닌 앞사람 1봉지, 그 다음사람 1봉지, 차례대로 10번째 사람까지 1봉지씩 주고, 다시 맨 앞사람 1봉지, ... 이런식으로 로테이션이 된다면 골고루 맨처음처리가 될 때부터 나눠서 먹을수 있다.

일괄처리 시스템의 문제점과 다중 프로그래밍 시스템, 다중 처리 시스템, 대화식 시스템으로 바뀐이유?

컴퓨터에서 가장 핵심인 장치는 중앙처리장치인 CPU이다. 이것은 비싸긴 한데.. 처리속도가 굉장히 빠르다. 일괄처리 같은 경우는 한 작업이 완료될때까지는 CPU를 다른 작업에 넘기지 않는다고 하면 대부분의 경우 한 개의 작업이 처리되는 동안 실제로 CPU를 사용하는 기간은 매우 짧아서 이 기간 외에는 CPU는 놀게되는 경우가 발생한다. 대표적으로 입출력이 있다. 사용자의 입력을 받기전까지 CPU는 다른 작업을 손도 안대고 그냥 사용자의 입력을 기다리는 것이다. (굉장한 낭비)

그렇기 때문에 다중처리, 다중 프로그래밍의 개념이 도입된것이다.



<대화식 시스템(Interactive System)>

시스템과 사용자가 모니터와 입력 장치를 통해 대화하듯이 일을 처리해 나가는 방식이다.




Copyright2014 By 휴먼사이언스

LIST

<운영체제란?>



사용자 인터페이스와 자원관리를 위한 프로그램의 집합.

컴퓨터의 사용자와 하드웨어 사이에서 가교역할을 하는 프로그램.

하드웨어 그 자체가 가리고 있는 능력을 잘 발휘하도록 제어해 주는 프로그램.

이라고 정의한다.

<운영체제 구성요소>

1. (Shell)

사용자나 응용프로그램이 운영체제와의 의사소통을 하기 위한 필요한 것을 말한다.

예를들어 윈도우에서 그래픽 사용자 인터페이스의 도움을 받아 아이콘이나 메뉴를 클릭하면 프로그램을 실행시키거나 파일을 여는 등의 일을 할 수 있는 것이다.

2. 장치 관리

시스템에 있는 주변 장치인 키보드, 모니터, 프린터, 하드디스크 등을 제어하는 것을 말한다.

3. 파일 관리

사용자 또는 프로그래머로부터 파일과 디렉토리를 만들고 지우고 수정하여 관리하는 일을 맡는다.

4. 메모리 관리

주기억 장치의 관리를 담당하게 되는데 실행될 프로그램을 위해 주기억장치의 일정 부분을 할당하거나 주기억 장치 안에 있는 프로그램들의 경계를 설정하여 서로 침범하지 못하게 하는 등의 일을 하게된다.

5. 처리기 관리

컴퓨터의 처리기인 CPU의 처리능력을 작업에 효과적으로 배분하도록 한다.

지금까지 말한 5가지는 모두 밀접한관계에 있다.

예를 들어 프로그램 파일 하나를 실행시킬 경우 먼저 파일 관리자에 의해 해당 파일이 불려지고 장치 관리에 의해 디스크로부터 읽혀져 메모리 관리에 의해 주기억 장치에 옮겨지고 처리기 관리에 의해 실제로 실행되어 진다.



<커널>

각종 자원(메모리, CPU, 디스크, 파일 등) 관리 및 하드웨어 접근하고, Multi-User 환경에서 여러 종류의 명령어에 대한 CPU 사용계획(Scheduling)을 세워 사용시간 할당.

컴퓨터가 처음 부팅될 때 까지 주기억 장치에 적재되어 시스템의 운영이 종료될 때 까지 계속해서 주기억 장치에 남아 있게 되는 부분이다.

예를들어 커널에 디바이스 드라이버들을 올려 그 디바이스 드라이버들은 소프트웨어가 하드웨어를 컨트롤 할 수 있게 해준다.

<운영체제의 목적>

컴퓨터를 보다 편리하게 사용, 시스템 자원을 효율적으로 사용.

운영체제를 사용하는 사람들의 입장 : 사용하기 쉽고 편리하며, 배우기 쉽고 신뢰할 수 있으며 빨라야 한다.

만드는 사람의 입장 : 운영체제가 설계, 유지, 보수가 쉽고 적응성이 좋으며 오류 없이 효율적이어야 한다.




Copyright2014 By 휴먼사이언스

LIST

1. 수동식 계산기

존 네피어, 파스칼, 라이프니쯔 등 유명한 학자들이 1600년대에 수동식 계산기를 만들었다.

물론 운영체제란 개념은 도입되지 않았다...

2. 자동식 계산기

에이컨이 1943년에 제작한 MARK I는 길이 17m, 높이2.4m나 되는 크기의 자동 계산기를 만들었다.

이때도 역시 운영체제란 개념은 없었다.

3. 1세대 운영체제(1940 - 1950)

1세대는 진공관 컴퓨터의 시기이다.

1942년에 아타나소프와 베리가 45개의 진공관을 사용해 ABC라는 컴퓨터를 제작했다.

그리고 ABC라는 컴퓨터를 토대로 모클리와 에러트가 ENIAC(에니악)1946년에 완성했다.

그 후, 모리스와 윌키스에 의해 EDSAC(에드삭)이 제작되었다.

그 뒤로 UNIVAC-I(1951), IBM 701(1953), IBM 305(1956) 차례대로 발전해 나갔다.

이 에드삭은 프로그램을 계산기에 붙어있는 스위치나 버튼 등을 일일이 조작하여 기계어로 만들어야 했기 때문에 운영체제가 없었다. IBM701에 와서 운영체제의 개념이 도입되기 시작했다. 이때 사용된 것이 일괄처리 시스템이다...

Batch?

작업이 차례대로 한 개씩 처리된다는 뜻이다. 한 개의 작업이 시작되면 그 일이 완전히 끝날 때 까지 다른 작업은 기다려야 한다는 뜻이다. (작업이 끝날때 까지 사용자의 중간 개입이 허용되어 있지 않는다)

4. 2세대 운영체제(1960년대)

쇼클리에 의해 트랜지스터가 발명되었다.

포레스터에 의해서 자기 코어 기억장치가 발명되어 주기억 장치로 사용되었다.

보조 기억장치로 마스크 팩이 발명되었다.

이런 것들을 사용하여 UNIVAC-II가 발명된것이다.

이때 운영체제에 사용된 시스템은 다중 프로그래밍 시스템, 다중 처리 시스템, 대화식 시스템 등이 사용되었다.

5. 3세대 운영체제(1960 - 1970)

킬비에의해 집적회로가 개발되어 트랜지스터를 대체했다. 이로인해 컴퓨터의 부피와 무게는 혁신적으로 줄고, 신뢰도도 1000배이상 증가했다.

이때, TCP/IP 표준과 함께 근거리 통신망도 등장하였고, UNIX가 등장하였다.

6. 4세대 운영체제(1970 - 현재)

고밀도 집적회로의 혁신적인 발전과 함께 범용화, 입출력 장치의 다양화, 저장 장치의 대용량화, 데이터 통신의 발전, 마이크로프로세서의 등장이다.

마이크로 프로세서의 개발로 개인용 컴퓨터가 본격적으로 보급되었다.

연산장치와 제어장치, 여기에 필요한 레지스터들을 하나의 칩에 집적시켜 넣는 데 성공하였는데, 이를 마이크로프로세서라고 한다.



Copyright2014 By 휴먼사이언스

LIST

+ Recent posts