출처 : https://jhnyang.tistory.com/106
#Computer System Architecture
오늘은 컴퓨터 시스템에 대해서 알아볼거예요.
Mainframe system (오늘 할 메인프레임 시스템), Multiprogramming systems, Time-sharing systems, desktop systems, parallel systems, Distributed systems, Clustered systems, Real-time systems, Embedded systems, Handheld systems
이게 다 컴퓨터 시스템 종류입니다. PC만 컴퓨터인 줄 아는데 우리 컴퓨터 시스템은 이렇게 많은 종류가 있어요!!
컴퓨터 시스템은 여러 방법에 따라 분류할 수 있습니다. 한 포스팅에 다 설명을 하기에는 내용이 너무 많으니까 역사적으로 진행되온 순서에 따라 차근 차근 다루면서 특징까지 살펴보도록 할게요.
System.out.println( "컴퓨터 시스템다양하다 ");
System.out.println( "오늘은 Mainframe system ");
#Mainframe Systems
메인프레임 시스템이라고 얘기를 하는데 옛날에 최초에 컴퓨터를 만들었을 때 그 컴퓨터를 메인프레임이라고 불렀습니다.
당연히 초창기에 만들었으니까 덩치가 컸겠죠? 크기가 엄청 큰데 큰거에 비해서 실제로 컴퓨터가 빠르지도 않아요ㅎㅎ 초기 컴터니까요. 이런 컴퓨터 시스템을 우리가 메인프레임 시스템이라고 불렀다!
이 메인프레임 시스템을 맨 처음에 아주 제일 초기에 잘 만들어서 팔았던 회사가 IBM이예요.
← 이 사진도 IBM사의 z9 메인프레임 컴퓨터랍니다.
IBM이 이런 메인프레임 컴퓨터를 잘 만들어서 장사를 엄청 잘했죠.
↓ 여기 아래에 보이는 이 사진은 IBM watson이라고 하는 슈퍼컴퓨터인데 지금 이거를 메인프레임이라고 부르지는 않아요.
하지만 이렇게 덩치가 큰 것을 메인프레임 시스템이라고 했고 초기에 은행들이 전산화 될 때 IBM이 메인 프레임 시스템을 도입해서 은행들이 대부분 전산화가 됐습니다.
지금 얘기하는 것은 1970년대, 80년대 즉 옛날 시절 얘기하는 거예요!
메인프레임 시스템이라는 말은 요즘에는 잘 안쓰는 말입니다.
System.out.println( "1970~80년대 초기 컴퓨터가 Mainframe system");
#Batch System 배치 시스템
이렇게 메인프레임 시스템이 나오던 시절에 운영체제라고 하는게 있었을까요? 이렇게 초창기 컴퓨터에는 운영체제라고 하는 것도 존재하지 않았습니다. 메인프레임 컴퓨터 시절에 프로그램이 동작하는 게 이렇게 배치 시스템이라고 하는 형태로 동작했어요. 당연히 프로세서도 한 개 였습니다.
배치 시스템이라는 것은 프로그램이 하나 수행이 되는거예요.
하나 수행을 시켜놓고 그 프로그램이 쭉 수행되다가 다 끝나면 다음 프로그램 올려서 수행시키고, 개가 다 끝나면 그 다음 프로그램 올려서 수행시키고 이런 식으로 돌렸습니다.
즉! 프로그램이 하나밖에 안돌아가는 거죠!
그래서 운영체제라고 부르지도 않았는데..
← 이 그림에서 운영체제에 해당하는 이 프로그램이 하는 일은 프로그램을 메인 메모리에 올려놓고 메인 메모리에 올려놓은 프로그램이 수행이 돼서 끝나기를 기다리는 거죠.
끝나면 이 메모리 영역에 있는 이 프로그램 대신에 다른 프로그램을 메모리에 올려놓고 개를 실행시켜 주고 그리고 끝나기를 기다리는 겁니다. 이 역할만 수행했어요.
그래서 예전에는 운영체제라고 안부르고 Resident monitor라고 불렀어요.
모니터가 말그대로 모니텅링 하는거고, Resident라는 말이 붙은 건 메모리에 항상 상주해있으면서 모든 일을 수행하는 프로그램이다 라고 해서 붙었습니다.
운영체제라는 이름은 초기에는 나오지 않았다는 것!
System.out.println( "배치시스템은 단일 수행 시스템");
System.out.println( "초기에 운영체제라 안부르고 Resident monitor 라 부름");
#Batch System의 문제?
근데 이렇게 동작을 하면 무슨 문제가 있을까요? 비싼 CPU가 낭비돼요!
CPU가 놀고 있습니다. 프로그램이라 하는 것은 명령어들을 쭉 수행을 하잖아요. 명령어들 쭉 수행하다가 I/O장치에 '디스크에서 데이터를 읽어라' 라는 명령을 요청을 했다고 가정합시다. 그러면 CPU가 하는 일은 이 작업이 끝날 때까지 기다리는 거예요. 그런데 지금 메모리에 프로그램이 하나밖에 없잖아요. I/O장치가 다 끝날 때까지 CPU는 결국 기다리고 있어야해요. CPU는 엄청 나게 비싼 하드웨어 자원인데 놀리게 되는겁니다!
그럼 이 문제점을 해결하기 위해 다른 시스템이 나왔겠죠? 그것에 대해서 다음 포스팅에서 다뤄볼게요.
System.out.println( "CPU가 논다");
'운영체제' 카테고리의 다른 글
[운영체제]Process vs Program (0) | 2022.08.25 |
---|---|
[운영체제] 인터럽트의 종류(Types of Interrupt) (0) | 2022.08.25 |
[운영체제 I/O Protection] 유저(User)모드 vs 커널(Kernel)모드 (모니터 모드)- 듀얼 모드 (0) | 2022.08.25 |
운영체제; 컴퓨터구조, device controller(장치 제어기) (0) | 2022.08.18 |
운영체제란? (0) | 2022.08.17 |