1950년대
어떻게보면 컴퓨터의 역사라고도 볼 수 있다.
최초의 컴퓨터는 1950년대 ENIAC이라고 한단다.
그런데 찾아보니 이전에 콜로서스라고 하는 영국에서 만든 컴퓨터가 있었던거 같다. 콜로서스같은 경우에는 2차세계대전 중 독일의 암호를 해독하기 위해 발명되었단다.
ENIAC 또한 포탄의궤도나 거리등을 측정하는 군용으로 개발되었단다. 진공관이 1만8천개가 있었다는거같다.
이때는 아직 운영체제가 없었고 프로그램이 직접 시스템자원을 제어했다.
1960년대 초기
프로그램 종류도 많아지고 사용자도 많아졌다. 여러 사용자가 사용하는데 먼저 실행중인 프로그램이 끝나기를 기다렸다가 다음 프로그램을 직접 실행시켜줘야 했다. 이런 불편한점을 해소하기위해 배치처리시스템이 출현했다. 또한 운영체제도 출현했다. 배치처리시스템이란 여러 프로그램을 등록시켜두면 차례대로 프로그램을 실행시켜주는 시스템이라고 할 수 있다. 그런데 배치처리시스템은 먼저 실행되고 있는 프로그램이있으면 그 프로그램이 완전히 끝나기 전까지는 키입력한것에 반응이 없는 식이라 여러명이 사용하기에는 매우 불편했다.
1960년대 후반
시분할시스템, 멀티태스킹이라는 새로운 개념이 제안되었다.
핵심은 여러 프로그램을 아주작은 시간단위로 쪼개서 번갈아가면서 작동시키는 방식이다.
이렇게 하면 여러 사용자들이 사용할때 반응시간이 줄어들고(시분할시스템), 여러개의 응용프로그램이 실행되고있는 것처럼 보인다(멀티태스킹)
추가적으로 멀티 프로그래밍이라는 개념도 제안되었는데 이는 프로그램실행중 cpu가 필요 없을때 cpu를 대기시키는게 아니라 다른 프로그램을 실행시키는 식의 개념이다. 이는 응용프로그램의 작동시간을 줄여줄 수 있다.
근데 왜 아이디어만 나오고 적용이 안됐지? 기술력이 부족했나?
1970년대
원래 이전에는 어셈블리언어를 사용해서 프로그램을 짰는데 여기서 명령으로 직접 cpu, memory등의 자원을 사용하는데 이게 각 컴퓨터마다 다르기때문에 컴퓨터마다 다시 프로그램을 만들어줘야했다. 이런 불편함을 해소하기위해
AT&T사의 벨연구소에서 데니스리치라는 사람이 c언어를 개발하고 이 c언어를 이용하여 유닉스를 개발했다.
c언어는 컴파일러가 어셈블리어로 해독해주는 방식이기 때문에 컴퓨터마다 사양이 달라도 같은 프로그램의 동작을 기대할 수 있었다. 또한 어셈블리어에 비해 복잡도도 낮아 사용하기 편했다.
UNIX는 1960년대 후반에 제안되었던 개념인 시분할시스템, 멀티태스킹, 멀티프로그래밍을 적용하여 나왔다.
1980년대
대형컴퓨터를 여러명이 접속해서 사용하던것이 점차 개인용컴퓨터의 보급되기 시작한다. 그리고 이런 80년대 중반 GUI환경이 나오기 시작한다.
1990년대
개인용컴퓨터가 보급되고 GUI환경으로 인해 사용자가 많아지며 다양한 응용프로그램이 등장하게된다(엑설,워드프로세스 등). windows os가 대중화된다. 또한 네트워크 기술이 발전되어 www(월드와이드웹)이 대중화 된다. 오픈소스운동도 활성화되기 시작한다(무료 오픈소스 운영체제인 LINUX개발)
정리
1950 최초의 컴퓨터(군용목적) 콜로서스나 에니악, 프로그램이 직접 시스템자원관리
1960 사용자가 많아지면서 여러 프로그램의 실행을 위해 배치처리시스템 적용, 근데 배치처리시스템이 반응속도도 느리고 여러명이 사용하기에는 불편하네? > 시분할시스템/멀티태스킹/멀티프로그래밍 등의 아이디어 나옴
1970 같은프로그램이여도 컴퓨터마다 다시 만들어야하고 어셈블리언어가 너무 복잡하네?> 데니스리치가 c언어를 만들고 c언어를 이용하여 시분할시스템/멀티태스킹/멀티프로그래밍을 적용시킨 UNIX운영체제 개발. 운영체제의 중요성부각
1980 개인용컴퓨터가 보급되기 시작하고 중반부터 GUI가 개발되고 제공됨 > 마우스등장
1990 컴퓨터도 널리 보급되고 GUI도 있겠다 많은 사람들이 쓸만한 많은 응용프로그램이 등장함 > 엑셀이나 워드같은거, 또한 네트워크가 발달하며 기술은 독점하는게 아니라 공유해야한다는 오픈소스운동이 활성화 되기시작함> 무료오픈소스인 리눅스개발.
컴퓨터랑 운영체제는 같이 발전해나가는거 같다. 그러면 양자컴퓨터같은 새로운 개념의 컴퓨터가 개발되면 그에 맞는 새로운 개념의 운영체제도 필요하게 되는걸까?
*Killer Application:프로그램이 인기가 많거나 효용성이 높아서 그 프로그램을 사용하기위해 하드웨어나 플랫폼을 구매하게 만들정도의 프로그램 > 줄여서 Killer App이라고도 한단다.
ex)엑셀을 사용하기 위해 window95 컴퓨터를 산다거나 하는 경우.
'CS > 운영체제&네트워크' 카테고리의 다른 글
스레드(쓰레드)란? (0) | 2024.02.22 |
---|---|
인터럽트 동작 과정 (0) | 2024.02.20 |
스케줄링 알고리즘 (0) | 2022.04.02 |
운영체제 대략적인 큰 그림 (0) | 2022.03.29 |
운영체제란 무엇인가? (0) | 2022.03.13 |