스터디/Python

1. 정보 및 컴퓨터 구성

elenalee 2024. 4. 20. 00:47

1. 정보와 프로그램 

 

데이터 

관찰이나 실험, 조사로 얻은 사실, 이론을 세우는데 기초가되는 사실 또는 바탕이 되는 자료

관찰이나 측정을 통해 얻은 수치, 문자 형태로 표현할수 있는 질적 혹은 양적인 값 

 

정보 (information)

데이터나 소식을 통하여 얻은 지식이나 상태의 종량

관찰이나 측정을 통해 수집한 자료를 문제해결에 도움이 될수 있도록 정리한 지식 

관찰과 측정을 통해 얻은 데이터를 처리(정렬, 합산, 군집화)하여 실제 문제 해결에 도움이 되는 데이터 또는 결과물 

 

1) 정보처리의 과정 

데이터 : 현상에 대한 관찰과 측정으로 생성(직접 문제해결에 도움 X),처리와 가공을 통해 정보로 변환

             측정된 데이터 (연속적 데이터, 범주적 데이터

관찰 : 사물 또는 현상을 파악하는 행위

측정 : 절대적인 기준을 맞춰 현상을 수치로 나타내는 과정 (연속적 데이터, 범주적 데이터)

처리와 가공 : 수집된 데이터를 집합으로 정렬, 군집화, 계산 또는 표현방법 변경 등의 데이터를 변환하여 정보를 생산하는 과정 

 

2) 컴퓨터: 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계  

비트 (bit, binary digit) : 두가지 상태값을 표현하는 기본 단위를 여러개 중첩시켜 데이터를 표현 또는 처리

바이트(byte) : 8개의 bit를 겹쳐서 표현 

컴퓨터와 2진법 : 트랜지스터를 통해 2진법 숫자로 데이터를 표현하여 저장 및 처리 

- emitter, base, collector이용 0과 1의 두가지 상태를 표현 

  emitter에 전류가 흐르나 collector에서는 흐르지 않으면 0,

  emitter에 전류가 흐를때 base에 특정 이상의 전압 인가, collector에 전류 흐름(1)

 

아날로그(analog) : 사물이나 개념을 연속적 물리량 값으로 표현, 질적 데이터 또는 양적데이터표현

디지털(digital) : 사물이나 개념을 이산적인 값으로 근사하여 표현, 양적 데이터로 표현 

 

숫자데이터 표현,  진법 변환 : 10, 12진수 ↔ 2진법

문자데이터 표현, 인코딩 체계 : 0100001 → A  ex) ASCII ( 7비트 문자표현, 1비트 패리티)

-> 컴퓨터는 숫자와 문자를 처리하는 방법이 다름, 숫자/문자 구별을 위한 정보를 별도공간에 저장

 

3) 프로그램

컴퓨터 : 처리방법과 과정이 정의된 프로그램 사용

( 정보를 처리하기 위한 방법과 과정을 자의적으로 결정불가능 )

  - 프로그램이란 어떠한 작업을 자동으로 처리할수 있도록

     처리방법 및 순서를 컴퓨터가 이해할수 있는 언어형태로 기술한것

  - 유사한 유형의 여러 문제를 추상화시킨 알고리즘(algorithm)을 구현한 결과물     

 

알고리즘 : 문제를 풀기 위한 단계별 절차를 체게적 명령의 형태로 기술한것

                주어진 명령어를 처리하는 컴퓨터에게 문제를 해결하도록 만드는 정형화된 절차

 

프로그래밍 언어 : 사람과 컴퓨터 사이의 의사소통 도구, 프로그래머가 컴퓨터가 이해할 수 있는 

                          언어를 사용하여 프로그램을 작성 (작업처리 지시)

 

1세대 언어 : 기계어 (0과 1, 컴퓨터는 사용하기 편하나 사람이 이해하기 어려움) 저급언어(low level)

2세대 언어 : 어셈블리어 (명령어 영어 대체, low level)

3세대 언어 : 자연어와 유사 (Python, Java, C, Rust), 고급언어 (High level)

4세대 언어 : 자동화 (Visual Basic, 프로그램 자체로의 효율성 낮음, High level)

 

프로그램의 실행 : 고급언어로 작성된 프로그램은 기계어밖에 인식할수 없는 컴퓨터에 의해 실행불가

컴파일러, 인터프리터 (시스템 소프트웨어)

 

2. 컴퓨터의 구성

- 하드웨어 : 컴퓨터를 구성하고 있는 물리적 부품 

- 소프트웨어 : 다양한 장치들을 동작시켜 특정 작업을 해결하는 프로그램 

 

1) 하드웨어 

- 기능에 따라 입력장치, 기억.저장장치, 제어장치, 연산장치, 출력장치로 구분 

- 사람의 문제 해결과정과 유사 ( 입력 - 기억 - 저장 - 제어 - 연산 -  출력)

 

▣ 폰노이만 구조 (현대 컴퓨터의 기본 구조로 범용적 컴퓨터에 기여한 구조)

 

하드웨어의 구성 

입력장치 : 명령과 데이터를 컴퓨터에 전달하는 장치, 컴퓨터가 처리할수 있는 2진수 형태로 변환 

                키보드, 마우스 , 스캐너, 터치 스크린

                동작인식장치 마이오 - 팔찌형태, 팔근육 움직임을 인식하여 입력

                                    립모션(Leap Motion) - 손동작 인식 (양손가능, 다양한 전용 소프트웨어)

 

출력장치 : 정보처리 결과를 인간이 인식가능한 형태의 데이터로 내보내는 장치,

                2진수 형태의 데이터를 문자, 숫자, 도형, 음성, 영상등의 형태로 변환 

                모니터, 스피커, 프린터, 초지향성 스피커 (특정 방향으로 소리전달), 3D 프린터

                HUD (Head-Up Display) 현실의 정보와 가상정보 혼합, AR(Augmented Reality)

                자동차 유리에 주행관련 각종 정보표시 

                HMD (Head-Mounted Display) 가상 세계의 정보 표시, VR(Virtual Reality, 가상 전시회 등)

 

기억장치 : 명령과 데이터를 기억(저장)하는 하드웨어, 역할에 따라 주기억장치와 보조기억장치로 구분

   주기억 장치 : 접근속도 빠르며, 비싸고, 용량이 작고, 전원 차단시 ROM:기억내용보존/RAM: 초기화

   보조기억장치(저장장치) : 접근속도 느리며, 저렴하고, 용량은 크며, 전원 차단시에도 내용 보존, 

                        플로피 디스크, 자기디스크, 광학디스크, 플래시 드라이브

   특수기억장치 : SSD(Solid State Drive, RAM을 이용한 저장장치)

                         빠른 속도, 외부충격에 강함, 전력소모 적음

 

제어장치와 연산장치 (CPU내) : 명령어와 데이터를 읽고 데이터를 연산 또는 처리하는 장치

   레지스터 : CPU내부에서 초고속으로 데이터를 저장하거나 읽어냄 (대략 8Kbyte정도의 크기) 

   연산논리유닛(ALU) : 제어유닛에서 내린 명령수행 후 레지스터에 저장 

   제어유닛 (Control Unit) : 레지스터에서 명령을 읽어 ALU가 수행하도록 함 

 

 

2) 소프트웨어

   유한 기능을 수행하는 하드웨어가 언제 어떻게 동작하여 문제를 해결할수

   있는지 절차를 지시하는 명령어 집합

  - 시스템 소프트웨어 : 하드웨어를 제어.관리하여 응용소프트웨어를 실행할수 있는 환경제공

  - 응용 소프트웨어 : 사용자 업무나 목적의 문제 해결을 위한 처리절차를 표현한 명령어 집합

 

시스템 소프트웨어 

다양한 장치들을 서로 유기적으로 동작시켜 특정 작업을 수행할수 있는 환경을 조성하는 프로그램

  - 운영체제(커널) : 사용자가 컴퓨터를 효율적으로 운영/관리/사용할수 있도록 하드웨어를 제어

  - 유틸리티 : 부가적인 기능을 제공하여 컴퓨터를 효율/편리하게 사용할수 있도록 지원 

  - 컴파일러 : 소스코드를 컴퓨터가 이해할수 있는 기계어로 번역

 

운영체제 : 시스템 환경관리 (시스템관리 , 장치제어)

                사용자 작업을 처리하기 위해 컴퓨터 자원(하드웨어)를 효율적으로 관리,

                응용 프로그램에 자원할당 

- 사용자 인터페이스 컴퓨터와 사용자를 매개하여 상호작용하는 방법제공 

   CLI(Command Line Interface), GUI(Graphic User Interface) 

- 프로세스 관리 ( 프로세스 : 현재 실행되고 있는 프로그램 ) 

   여러 프로그램 실행이 요청시 한정된 자원(기억장치 등)을 효과적으로 사용하도록 조율 

- 네트워크 인터페이스 (컴퓨터는 네트워크를 통해 상호 데이터 교환)

    응용 프로그램이 통신할수 있는 환경 제공, 통신장치(하드웨어)관리

- 기억. 저장장치 관리

    주기억장치의 크기는 보조기억장치에 비해 매우 작으므로 효율적인 관리 필요

    컴퓨터의 프로그램은 실행되기 위해 보조기억장치에서 주기억장치로 적재

- 입출력장치 관리

 

 

 

 

 

 

'스터디 > Python' 카테고리의 다른 글

6. 실습 - 게임구현  (0) 2024.05.04
5. 모듈과 파일  (0) 2024.05.03
4. 함수와 객체  (0) 2024.05.02
3. 구조와 제어  (0) 2024.04.21
2. 파이썬 Basic  (0) 2024.04.20