본문 바로가기
컴퓨터시스템개론

[컴퓨터시스템개론] 1장 정리

by 이재현9999 2024. 10. 8.

1.1 컴퓨터 발전 역사

컴퓨터 특징

- 신속성

- 정확성

- 자동성

- 대량성

 

초창기

주판은 5진법과 10진법을 동시에 사용하는 구조이다.

중국식 주판은 16진법. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f

 

1600 ~

기계식 계산기들

1642년 프랑스의 파스칼이 톱니 바퀴를 이용한 계산기를 만듦.

1671년 라이프이츠는 2진법을 이용한 곱셈과 나눗셈도 가능한 '4칙 연산기'를 개발함.

1822년 영국의 수학자 배버지는 다항 함수를 계산할 수 있는 기계식 계산기인 차분 기관을,

1837년 좀 더 일반적인 계산을 할 수 있도록 고안된 해석 기관을 설계하였다.

 

설계만 이루어진 이유중 하나는 톱니바퀴의 제조가 어려웠었기 때문.

기억장치, 연산 및 제어 장치, 입/출력 장치로 이루어져, 오늘날 사용하는 자동 컴퓨터의 모든 기본 요소를 갖춘 모양이었다.

 

새로운 입력 시스템 : 천공 카드 (punched card)

산업 혁명이 일어남.

1725년에 Basile Bouchon은 구멍을 뚫은 종이로 직물기를 조종하는 방법을 개발하고,

1801년에 자카드(Marie Jacquard)가 직조기에 천공 카드를 사용하는 더 향상된 방법 개발함.

1832년에 종이 카드에 구멍을 뚫어서 자료를 입력하는 천공 카드 시스템을 자동화된 계산기에 사용하기 시작.

1889년에 홀러리스는 통계 작업을 위해서 천공 카드 기반의 공학용 도표 작성기를 개발함. IBM 기릿

 

1940~

전자식 컴퓨터의 시초

1942년에 개발된 ABC 컴퓨터는 미국 아이오와 주립대의 John Atanasoff 교수가 개발한 linear equation 해결을 위한 컴퓨터로써 세계 최초의 컴퓨터.

Mark-l은 '전자식'은 아니지만 '전기 기계식'으로써 Babbage의 해석 기관이 실제적으로 구현된 것으로 여겨짐.

전기식 : 에너지 동력을 전기로 사용.

전자식 : 정버 표현을 '전자적'으로 2진수로 표현한다는 의미.

 

1946년에 ENIAC이 '다용도 (general-purpose)' 전자식 컴퓨터가 개발되었다.

ENIAC은 '외부 프로그래밍 (hard-wired programming)' 방식임.

10진수 사용, 탄도 계산에서 기존의 전기 기계식 계산기보다 평균 처리 속도가 1,000배 정도 빨라짐을 보임으로써 전자식 컴퓨터의 가능성을 보였다.

다용도(General Purpose) 컴퓨터: 특정한 목적의 계산을 수행하기 위한 것이 아닌 일반적인 다양한 계산을 수행할 수 있다는 의미다. 즉, 프로그래밍이 가능한 컴퓨터다.

 

내장형 프로그래밍 개념 (Stored-Programming Concept)

1945년에 폰 노이만 (John von Neumann)이 메인 메모리에 컴퓨터의 명령어와 데이터를 모두 기억시키는 '내장형 프로그래밍 개념'을 제안하였다.

프로그램 내장 방식은 컴퓨터 기억 장치에 프로그램을 저장해놓고 이 명령어들을 순서대로 꺼내어 해독하여 실행하는 방식.

 

1949년에 프로그램 내장 방식을 처음으로 구현한 EDSAC과,

1950년에 ENIAC을 개량한 EDVAC이 개발된다.

1951년에 EDVAC이 개량되어 최초의 상용 컴퓨터인 UNIVAC-I이 대동령 선거의 결과 예측에 사용된 최초의 컴퓨터.

 

튜링 머신 (Turing Machine)

앨런 튜링이 튜링 머신이라는 추상적인 컴퓨팅 모델을 제안하였다. 튜링 머신은 컴퓨터라고 가정할 수 있는 기계의 '실행'과 '데이터 저장'을 수행할 수 있는 '추상적인 계산 모델'이다.

튜링테스트 : 1950년에 튜링이 제안한 '컴퓨터가 사람과 유사한 지능을 가지고 있는지를 테스트하는 방법'이다.

사람이 컴퓨터인지 사람인지 판단함.

 

CAPTACH(캡차)

2003년에 Luis von Ahn에 의해 제안된 방법으로써, 튜링 테스트의 일종인데, 일반적인 튜링 테스트와 다른 점은 판단을 하는 주체가 사람이 아니라 컴퓨터이다. 즉, 컴퓨터가 사람과 기계를 구분하는 주체임.

 

1980~

PC (Personal Computer)가 등장함.

사무용 컴퓨터를 가정에서 사용할 수 있게 됨.

PC의 등장은 VLSI의 등장으로 가능해진 것이다.

 

1990~

인터넷과 모바일의 시작

개인용 컴퓨터의 등장으로 개인별로 독립되어 처리하던 작업 형태가 인터넷의 등장으로 또 한번 변하게 됨.

인터넷의 시초는 미국 국방성의 ARPA(Advanced Research Projects Ageny)에서 시작된 프로젝트임.

이것이 지금 우리가 웹이라고 하는 WWW의 개발로 인하여 전 세계로 퍼지게 됨.

 

모바일 컴퓨팅이 가능하기 위해서는 아래의 3가지 기반 기술이 필요하다.

고속 네트웍 : 모바일 컴퓨팅이 가능하기 위한 고속의 네트웍 전송 기술

모바일 하드웨어 : 휴대성을 위한 초소형, 초경량의 하드웨어 제조 기술

모바일 소프트웨어 : 개인별 최적화된 소프트웨어 제작, 유통 기술

 

2000~

인공지능, 딥러닝의 시대

 

 

1.2 컴퓨터의 종류

컴퓨터를 구분하는 기본 조건은 '연산 속도'와 '저장 용량'이다.

 

수퍼 컴퓨터 : 엑사플롭스 (ExaFLOPS, 10^18 FLOPS) 단위의 성능을 보이는 컴퓨터

FLOPS (Floating Operation per Second) : 1초 당 실행 하는 부동 소수점 연산 개수의 단위를 의미.

부동 소수점이란 실수를 컴퓨토에서 표현하는 방법. 1 TFLOPS는 1초에 1조개의 부동 소수점 연산을 수행할 수 있음을 의미.

메인 프레임 : 대용량, 고속 처리를 주목적으로 하는 컴퓨터

개인용 컴퓨터 : 개인이 사용하는 일반적인 컴퓨터

임베디드 컴퓨터 : 내장형...

 

 

1.3 컴퓨터 전원을 켜면 어떤 일이?

1. 전원을 켜면 외부 전원의 전압이 내부에서 사용할 수 있는 전압으로 변환.

이 전기가 CPU로 전달. CPU 레지스터인 Program Counter를 메인보드 상의 ROM BIOS의 부트스트래핑 프로그램의 주소 값으로 초기화함. -> 부트스트래핑 프로그램이 동작할 수 있게 된다.

2. 부트 프로그램은 CPU의 이상 유무를 테스트한 후, 테스트 결과가 ROM BIOS에 저장된 값과 일치하면 POST (Power On Self-Test) 작업을 수행. POST는 시스템 벗, RTC (Real-Time Clock), 시스템의 비디오 구성 요소들, RAM, 키보드, 연결된 모든 드라이브에 신호를 보내 정상적으로 동작하는지를 점검하는 과정이다.

3. 부트 프로그램은 운영 체제를 로드하기 위해 디스크의 첫 번째 섹터를 메인 메모리로 읽어들임.

디스크의 첫 번째 섹터에는 MBR (Master Boot Record)이 있는데, 이 정보를 바탕으로 운영 체제의 위치를 찾아 주기억 장치에 적재함. 이때부터 운영 체제에서 정의된 부팅 과정이 수행된다.

4. 운영 체제는 운영 체제 자신의 'init'과 같은 첫 번째 프로세스를 실행하고, 사용자로부터의 요청이 발생하기를 기다린다.

이러한 요청은 하드웨어나 소프트웨어로부터 인터럽트의 형태로 발생된다.

- 하드웨어는 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생시키고,

- 소프트웨어는 시스템 호출이라 불리는 특별한 명령을 실행하여 인터럽트를 발생시킴.

 

PC (Program Counter) 레지스터 : 다음에 수행할 기계어의 주소를 저장하는 레지스터

ROM (Rean Only Memory) : 컴퓨터의 주기판에 위치한 메모리로써, 컴퓨터에 전원이 공급되지 않더라도 저장 내용을 보존하는 메모리.

BIOS (Basic Input/Output System) : 컴퓨터 시스템의 기본 입출력 시스템을 제어하는 소프트웨어로써, 주로 컴퓨터의 전원을 켤 때 시작되며, 하드웨어 초기화, 부팅 프로세스 관리, 시스템 설정 관리 등의 기능을 수행.

부트스트랩 로더 : 컴퓨터의 ROM에 저장되어 있는 작은 프로그램은 하드 디스크에 있는 운영체제를 실행할 수 있도록 해줌.

 

 

1.4 컴퓨터 구조 개괄

컴퓨터는 하드웨어와 소프트웨어로 이루어져 있다.

하드웨어는 각종 전자 회로와 물리적인 장치로 이루어진 기계 부분

소프트웨어는 하드웨어를 활용할 수 있도록 해주는 프로그램을 말한다.

소프트웨어는 하드웨어와의 긴밀성에 따라서 아래와 같이 나눌 수 있다.

- 시스템 소프트웨어

- 응용 소프트웨어

 

하드웨어

하드웨어는 크게 4요소로 나눌 수 있다.

중앙처리 장치 (CPU)

주기억 장치 (main memory)

입력 장치 (input device)

출력 장치 (output device)

 

소프트웨어

컴퓨터의 general-purpose, versatility는 바로 소프트웨어에 있다.

시스템 소프트웨어 : 컴퓨터 관리를 위한 or 사용자에게 편이 기능을 제공하는 컴퓨터 사용에 필수적인 프로그램

응용 소프트웨어 : 사용자가 직접 사용하는 워드 프로세서, 웹 브라우저, 등등.

 

 

연습 문제

1. 세계 최초의 전자식 컴퓨터는 (      ) 이다.

-> ABC

 

2. 컴퓨터의 범용성 (general-purpse) 개념을 처음제시한 기계는 (     )이다.

-> ENIAC

 

3. 오늘날의 컴퓨터의 모델인 ‘프로그램 내장형 컴퓨터(stored-program computer)’를 처음 제안한 사람은 (  )이다.

-> 폰 노이만

 

4. 최초의 프로그램 내장 방식의 전자식 컴퓨터는 (  )이다.

-> EDVAC

 

5. 컴퓨터는 ( )와 ( )로 구성된다.

-> 하드웨어, 소프트웨어

 

6. 컴퓨터 하드웨어의 기본 구성 요소 4개는 (  ,  ,  , ) 이다.

-> CPU, main memory, input device, output device

 

7. 찰스 배비지가 만든 ‘차분 기관’ 또는 ‘해석 기관’과 현대에 사용하는 전자식 컴퓨터의 가장 기본적인 차이는 무엇이라고 생각하는가?

찰스 배비지가 만든건 기계식 장치, 현대는 전자식 장치이다.

 

8. 1942년에 개발된 ABC 컴퓨터와 1946년에 개발된 ENIAC 컴퓨터의 차이는?

ABC : 세계 최초의 전자식 컴퓨터, 선형 방정식 해결을 위해 등장, 제한된 기능만 수행할 수 있음.

ENIAC : 2차 세계대전 탄도 계산 등을 위해 등장, 다양한 게산 기능을 수행할 수 있음.

 

9. 전기 기계식 계산기와 전기 전자식 계산기(현대의 컴퓨터)의 차이점은?

전기식은 에너지 동력을 전기로 사용하지만 전자식은 정보 표현을 '전자적'으로 2진수로 표현한다.

 

10. Stored-Program Concept의 컴퓨터와 ENIAC의 가장 큰 차이점은 무엇인가?

ENIAC은 외부 프로그래밍 (hard-wired programming) 방식이다.

 

11. Turing Test와 CAPTCHA와의 관련성(같은 점, 다른 점)을 기술하라.

공통점 : 인간과 기계를 구분하는 방법

차이점 : CAPTCHA는 역튜링테스트로 기계가 인간을 구분하는 방법으로써 등장.

튜링 테스트는 엘런 튜링이 1950년 개발했으나, 캡챠는 연구원들이 1997년 방법을 제출하고, 캡챠 용어는 Luis von Ahn 및 Manuel Blum이 이끄는 Carnegie Mellon Univ.의 컴퓨터 과학 연구원들이 2003년에 제시하여 사용하게 됨.

 

12. 현재 일반적으로 사용되는 폰 노이만 구조의 전자식 컴퓨터의 근본적인 한계를 기술하고, 이를 극복할 수 있는 새로운 형태의 컴퓨터는 어떤 종류가 연구/개발되고 있는지 1가지만 적으시오.

 

13. 본 교재에 소개된 내용 이외에도 사람의 신체를 측정이나 계산의 단위로 사용하는 것이 어떤 것들이 있는지 한번 찾아보자.

 

14. 컴퓨터(계산 도구)의 발전 단계에 큰 영향을 미친 요인 및 그 의미들을 생각해보자. 예를 들어, 인간의 몸을 벗어난 도구 사용의 의미, 전자식 컴퓨터의 의미, 휴대용 컴퓨터 등장의 의미 등을 각자의 사고 방식으로 정리해보자.

 

15. 파스칼(Pascal)부터 스티브 잡스(Steve Jobs)까지 컴퓨터의 발전사에 큰 영향을 끼친 인물들을 순서대로 나열해보고 이들의 업적을 간략히 기술해보자.

 

16. RAM, ROM, Hard Disk, Booting, 이 4개의 단어를 이용하여 Booting의 개념을 설명하는 하나의 문장을 완성하시오.