https://www.youtube.com/watch?v=26QPDBe-NB8
영상의 요약이자 정리
컴퓨터의 성능이 향상됨에 따라 인간의 힘으로는 할 수 없는 일을 하기위해 생겨난 운영체제.
우리가 흔히 컴퓨터를 키면 최초로 시작되는 프로그램이며
이 프로그램이 나머지 후속프로그램을 관리한다.
운영체제가 컴퓨터를 도와서 일부를 batch하면서 프로그램 실행 시간 사이의 간격이 생기는 것을 최소화 시켜서 최적화된 프로그램 실행을 도와준다.
다시 말해서 유휴상태로 있는 CPU를 효율적으로 관리하는 것이 OS다.
Atlas 는 스케줄링을 통해 그것을 해냈다.
계산을 해서 출력을 하지만 CPU의 계산능력이 출력능력보다 월등해서 생기는 유휴상태를 CPU의 스케줄을 통해서 효율적으로 관리하려고 했다.
예로 4대의 판독기, 4대의 종이펀치기, 8개의 자기 테이프 드라이브로 컴퓨터를 완성했다고하자.
그렇다면 모든 일이 순차적으로 수행되는 것이 아니라 각각 병렬적으로(parallel) 수행을 하는 것이다. 이는 컴퓨터의 성능 향상에 기여했다. 우리는 이것을 MultiTasking이라고 부른다.
그렇지만 프로그램을 수행하는데에는 데이터가 필요한데 이러한 데이터를 프로그램을 수행할 때마다 초기화 시켜서 저장하고 불러올 수는 없었다. 그래서 메모리의 할당이 필요했다.
운영체제는 메모리 위치를 가상화해서(Virtual Memory) 프로그램은 메모리가 항상 0에서 시작된다고 생각하게 만든다.(Abstraction, 추상화) 실제 물리적위치는 다를 수 있다.
이렇게 메모리를 할당하는 것은 메모리의 크기를 유연하게 운용할 수 있게 했는데 이것을 동적메모리 할당(dynamic memory allocation)이라고 한다.
각 프로그램에 자체 메모리를 할당한다는 것은 서로로부터 더 잘 격리되어있다는 말이다. 다시 말해 서로 다른 영역에 있음으로 메모리보호( memory protection)이 가능해짐을 뜻한다. 때문에 프로그램의 오류가 생기면 다른프로그램의 메모리가 아닌 자신의 프로그램의 메모리를 수정하거나 삭제함으로써 가능해진다. 이는 악성 소프트웨어로부터 보호하는데 큰 역할을 한다. 다른 프로그램에서 메모리를 읽거나 수정하는 접근권한을 주지 않는 것이다.
이러한 CPU와 OS를가진 컴퓨터가 Atlas 였다.
또한 초기에 나온 가장 영향력 있는 시간 공유 운영체제는 Multics로 메모리 접근에 대한 권한을 정말 강하게 다룬 운영체제다. 그렇지만 이는 너무 접근권한을 제어해서
사용자의 유용성을 저해한다고도 볼 수 있었는데
이에 UNIX라는 OS가 나왔다.
2가지로 운영체제를 분리하려고 했는데
첫 번째는 커널(KERNEL)이라고 부르는 I/O를 다루는 기능인
메모리 관리, 멀티태스킹과 같은 OS의 핵심기능.
두 번째는 추가적으로 제공되지만 커널이 아닌 프로그램과 라이브러리같은 유용한 도구들이다.
이렇게 의도적으로 핵심기능을 분리하는 것은 단순해짐으로써 저렴하고 다양한 하드웨어에서 유닉스가 돌아갈 수 있다는 것을 의미했고, 이는 프로그래밍의 인기를 가져왔고 또한 그에 따른 유용한 도구의 수도 증가했다. 프로그래밍언어나 워드프로세서용 컴파일러들도 만들었다.
이는 PC시장의 출현과 부흥을 가져왔다.
'컴퓨터, IT 지식 > IT' 카테고리의 다른 글
부울 대수학과 논리 회로 (0) | 2020.04.02 |
---|---|
초창기 컴퓨터의 구성과 분석, Early Computing (0) | 2020.04.02 |
컴퓨터의 전자화, 발전; Electroninc computers (0) | 2020.04.02 |
컴퓨터의 언어, 기계어(Machine Language) (Why Do Computers Use 1s and 0s?) (0) | 2020.03.30 |
운영체제 정의, 만들어진 배경(How Do Operating Systems Work?) (0) | 2020.03.30 |