728x90

운영체제의 개요

 

1. 운영체제 구조와 기능

더보기

운영체제란

컴퓨터의 효율적인 운영을 담당하는 시스템 소프트웨어

  • 시스템의 자원인 CPU, RAM, HDD, I/O장치, 네트워크 등을 효율적으로 관리하고 운영
  • 사용자와 컴퓨터 하드웨어 간의 인터페이스 역할을 함

운영체제의 목표

  1. 컴퓨터 내의 하드웨어/소프트웨어 자원을 관리함
  2. 컴퓨터에 사용자가 쉽게 접근할 수 있는 인터페이스를 제공함
  3. 수행 중인 프로그램들의 효율적인 운영을 도움
  4. 작업 처리 과정 중의 데이터를 공유함
  5. 입출력에 보조적인 기능을 수행함
  6. 오류가 발행하면 오류를 처리함

운영체제의 기능

  • 프로세스 관리 : 프로세스의 생성, 삭제, 동기화 등에 관여
  • 작업 관리 : 프로세스가 수행하는 작업에 대한 관리
  • 주기억 장치 관리 : 주기억 장치의 할당과 회수를 관리
  • 보조기억 장치 관리 : 보조기억 장치의 사용을 관리
  • 입출력 장치 관리 : 입출력 장치를 관리함
  • 파일 관리 : 파일 생성·빈 공간 관리·디스크 스케줄링 등을 담당
  • 보안 관리사용자 계정 관리 및 불법 침입 등 보안 관련 사항 관리

 

2. 운영체제 처리유형

더보기

일괄처리(Batch Processing)

  • 여러 사용자들의 작업들을 모아서 일괄적으로 순서대로 처리하는 방식
  • 실행 요청 순서에 따라 순차적으로 프로그램을 실행

다중프로그래밍(Multi-programming)

  • 한 프로그램이 입출력 등의 작업을 할 때 다른 프로그램을 수행
  • 중앙처리장치를 쉬게 하지 않고 처리하게 하여 전체적인 처리 속도를 향상시키는 방식

시분할 시스템(Time-sharing System)

  • CPU 운영 시간을 잘게 쪼개어 여러 사용자에게 골고루 처리 시간을 제공
  • 특정 사용자가 오래 기다리는 것을 방지

다중처리(Multi-Processing)

  • 두 개 이상의 프로세서로 구성된 시스템의 운영체제로서, 단일 처리 시스템보다 많은 양의 작업을 동시에 처리할 수 있는 방식

 

3. 운영체제 발전 과정

더보기

유닉스(Unix)

  • 고가의 컴퓨터를 여러 사람이 이용할 수 있는 운영체제 개발을 시도
  • 1960년대 초 : MIT, Bell Lab, GE 등이 공동으로 MULTICS 개발 시작
  • 1969년 AT&T 연구원 Ken Tompson과 Dennis Ritchie가 UNICS 개발
  • 1973년 Dennis Ritchie가 C언어로 다시 개발 -> 고급 언어로 작성된 최초의 운영체제
  • 1976년 미국의 대학과 기업에 확산
  • 1978년 버클리 대학의 Bill Joy와 Chuck Haley가 BSD* UNIX 발표
  • 1983년 AT&T가 System V 발표
  • 특징
    • 전문 프로그래머용으로 개발 다양한 프로그램 제작
    • 고급 언어로 작성되어 다양한 하드웨어에 설치 가능
    • 연구용으로 소스 공개 대학이나 연구소에서 많이 사용
    • 다중 사용자 시스템
    • 강력한 네트워크 기능 지원
    • X Windows 도구로 GUI 환경 제공

리눅스(Linux)

  • 1991년 핀란드의 헬싱키 대학생이던 Linus Torvalds가 개발
  • GNU 프로젝트에 참여하면서 급속하게 성장
  • 무료이며 소스 코드가 완전히 공개된 운영체제
  • 누구나 다운받아 설치할 수 있으며, 다수의 배포판이 존재

 

Mac OS

  • 애플에서 개발한 GUI 기반의 운영체제
  • FreeBSD를 변형하여 매킨토시 컴퓨터에서 동작
  • 1984년~2001년 : 클래식 Mac OS (버전 1 ~ 9)
  • 2001년~2015년 : Mac OS X
  • 2016년 ~ 현재 : macOS
    • 아이맥, 맥북프로 출시 (인텔기만 매킨토시) 
    • iOS, watchOS, tvOS 와 통일된 명칭 사용

Window OS

  • 마이크로소프트사에서 만든 그래픽 사용자 인터페이스(GUI)기반 운영체제
  • 1985년 Windows 1.0
  • 1992년 Windows 3.1 : MS-DOS에 GUI를 추가한 구조
  • 1995년 Windows 95 : 자체적 GUI 환경의 OS
  • 2001년 Windows XP : 윈도우 NT 기반으로 전면 개선
  • 2009년 Windows 7
  • 2012년 Windows 8
  • 2015년 Windows 10
  • 2021년 Windows 11

프로세스 관리와 스케줄링

 

1. 프로세스 관리

 

더보기

프로세스(Process)

실행을 위해서 주기억장치에 올려진 프로그램 (운영체제 관리)

프로그램 코드 뿐만 아니라 실행에 필요한 다양한 정보도 포함

운영체제에서 실행되는 시스템 작업의 기본 단위

 

프로세스 생명 주기

준비 : 프로세스 실행 기다림

실행 : CPU에서 프로세스 실행, CPU는 한순간에 하나의 프로세스만 실행

대기 : 어떤 사건이 일어나기를 기다림

 

 

프로세스 제어 블록(Process Control Block)

  • 운영체제는 프로세스 각각에 대한 정보 관리를 통해 프로세스를 제어함
  • 프로세스에 대한 정보는 PCB(Process Control Block)에 저장됨
  • 임의의 프로세스가 생성되면 PCB가 생성되며 프로세스 종료 시 없어짐
  • PCB 정보
    • 프로세스의 상태 : 실행 상태인지 또는 실행을 위해 준비상태인지 등의 정보
    • PC 값 : 다음에 실행될 명령어의 주기억장치 주소를 의미, PC 레지스터에 저장
    • 스케줄링 정보 : 다음에 실행될 프로세스를 결정하는 데 필요한 정보로, 프로세스 스케줄링 정책, 우선순위등을 의미
    • 주기억장치 정보 : 해당 프로세스가 주기억장치 어느 영역에 위치해있는지를 저장 

프로세스 생성

 

  • 생성된 프로세스 A의 프로세스 제어 블록이 준비 큐에 연결 - 준비 상태
  • 중앙처리장치가 프로세스 A를 실행 - 실행 상태

프로세스 상태 - 준비, 실행

  • 프로세스 B와 C가 생성, 준비 상태
  • 중앙처리장치가 프로세스 A를 실행 – 실행 상태

프로세스 상태 - 대기

  • 프로세스 A에 디스크 입출력 명령이나 sleep 명령이 발생할 경우 : 대기 상태
  • 기다리던 이벤트가 종료되면 준비 큐로 이동해서 준비 상태가 됨

프로세스 종료

  • 프로세스 A의 실행이 종료된 경우 : PCB와 프로세스가 메모리에서 삭제됨

2. 프로세스 스케줄링

더보기

다중 프로그래밍(Multi-programming)

  • 여러 개의 프로세스를 주기억장치에 적재
  • 실행 중인 프로세스가 대기하는 경우 다른 프로세스가 CPU에서 실행
  • CPU 이용률을 최대화하는 개념

 

프로세스 스케줄링(Process Scheduling)

운영체제가 어떤 프로세스를 실행할 지를 결정하는 것

  • FCFS(First-Come First-Served) 스케줄링 : 먼저 도착한 프로세스를 먼저 서비스(실행)하는 방법
  • 라운드 로빈(Round Robin) 스케줄링
  • Shortest-Job-First(SJF)

라운드 로빈(Round Robin) 스케줄링

  • 여러 프로세스들이 CPU를 돌아가며 일정한 시간을 할당받아 실행되는 방식
  • 프로세스들은 시간 할당량(time quantum) 동안 CPU를 할당받아 실행

Shortest-Job-First(SJF)

  • 각 프로세스는 자신의 수행 시간을 제시
  • 수행 시간이 가장 작은 프로세스에 먼저 CPU를 할당
  • 작업들의 평균 대기시간이 최소가 됨
  • 단점 : 무한봉쇄(Indefinite blocking), 기아상태(Starvation)

우선순위(Priority) 스케줄링

  • 가장 높은 우선순위의 프로세스에게 먼저 CPU를 할당
  • 우선 순위가 같은 프로세스는 FCFS 방법을 적용
  • 단점 : 무한봉쇄(Indefinite blocking), 기아상태(Starvation)
  • 에이징(Aging) 기법 : 기다린 시간에 비례하여 우선 순위를 높여줌

스케줄링 평가 기준

  1. 공정성 (특정 프로세스가 불이익을 당하는가) 
  2. Throughput (단위시간에 끝나는 작업 수) 
  3. Response time 
  4. 요청 목적에 맞는가(급한 작업, 여유 있는 작업) 
  5. 예측 가능성 (요청 시마다 시간 편차가 큰지 여부) 
  6. 오버 헤드 최소화 (스케줄링에 소요되는 시간과 공간) 
  7. 균형적인 자원 이용 (다른 자원의 활용도를 높이는가)

주기억장치와 파일 관리

1. 주기억장치 관리

 

더보기

주기억장치(Main Memory)

  • 현재 실행 중인 프로그램과 이 프로그램이 필요로 하는 데이터를 일시적으로 저장하는 장치
  • 운영체제는 현재 사용되고 있는 주기억장치 영역과 사용되지 않는 영역에 대한 정보를 유지
  • 프로세스에게 메모리를 할당하고, 프로세스가 종료되면 회수

단일 프로그래밍

  • 주기억장치에 운영체제 외 한 개의 사용자 프로그램만 저장하는 관리 기법
  • 주기억장치를 두 영역으로 나누어 저장

다중 프로그래밍 - 분할 메모리 관리

  • 주기억장치(메모리)를 n개의 영역으로 분할하여 서로 다른 프로세스를 동시에 저장

분할 메모리 관리 할당 방식

  • 새롭게 생성된 프로세스를 메모리에 할당하는 방식
  • 최초 적합 : 프로세스의 크기보다 큰 최초의 영역에 할당
  • 최적 적합 : 프로세스의 크기보자 큰 영역 중 가장 작은 영역에 할당
  • 최악 적합 : 프로세스의 크기보다 큰 영역 중 가장 큰 영역에 할당

가상 메모리(Virtual Memory)

  • 실행될 프로그램이 주기억장치보다 크거나 여러 개인 경우에는 주기억장치의 공간 부족으로 인해 프로그램 실행에 제약이 됨
  • 당장 실행에 필요한 부분만 주기억장치에 저장하고, 당장 필요하지 않는 나머지 부분은 보조기억장치에 넣어두고 실행

페이지(Page)

  • 프로그램을 일정한 크기로 나눈 단위 
  • 페이지 단위로 주기억장치에 프로그램이 올라가서 동작

페이징(Paging)

  • 가상메모리를 구현하는 한 방법
  • 페이지 프레임 : 실제 주기억장치의 페이지가 저장되는 고정된 크기의 블록

페이지 테이블 (Page Table)

  • 프로세스마다 각 페이지가 주기억장치의 어느 프레임에 저장되는지를 나타내는 테이블

 

페이지 교체

새로운 페이지를 주기억장치에 저장할 때 비어있는 프레임이 없으면?

-> 새로운 페이지를 저장하기 위해 주기억장치에서 제거할 페이지를 결정하고 교체함

페이지 교체 알고리즘

  • FIFO (First-In First-Out) 알고리즘
    • 페이지를 교체해야 할 때 주기억장치에 가장 먼저 올라온 페이지를 선택해서 제거하는 기법
  • LRU (Least Recently Used) 알고리즘
    • 페이지를 교체해야 할 때, 주기억장치에 올라온 페이지들 중에서 가장 오랫동안 사용되지 않았던 페이지를 선택해서 제거하는 기법
  • LFU(Least Frequently Used)알고리즘
    • 페이지를 교체해야 할 때 페이지들 중에서 사용 빈도가 가장 낮은 페이지를 선택해서 제거하는 기법

 

2. 파일 관리

 

더보기

파일 시스템

  • 파일은 보조기억장치에 저장된 연관성 있는 정보(데이터)의 집합
  • 프로세스가 파일을 생성할 때 이름을 부여
  • 파일을 읽고 쓰는 동작은 운영체제가 담당

FAT(File Allocation Table)

  • 트랙(Track)과 섹터(Sector)로 구성
  • 간단한 구조로 PC 운영체제 대부분이 지원 - 파일 공유에 적합
  • 메모리 카드나 USB 메모리 등에서 사용
  • 디스크 오류 등 발생 시 안정성이 떨어짐
  • FAT, FAT16, FAT32, VFAT 등 형식이 존재
  • exFAT는 파일 크기 한계를 극복 - 최대 512TB까지 저장

NTFS(New Technology File System)

  • FAT을 대체하기 위해 개발
  • 메타데이터 지원, 성능 개선, 신뢰성 향상 등
  • 파일 용량 한계 확장
    • FAT32 : 파일 최대 4GB, 드라이브 최대 32GB
    • NTFS : 파일 최대 16TB, 드라이브 256TB
  • 보안성, 안정성이 뛰어나지만 호환성이 부족

HFS(Hierarchical Technology File System)

  • 애플이 개발한 파일시스템
  • Mac OS에서 사용
    • 파일개수 최대 65,536개
    • 파일 용량 최대 2GB
  • 1998년 HFS+ 발표
  • 2016년 APFS(Apple File System)으로 전환

 

728x90
728x90

컴퓨터 구조

1. 컴퓨터 시스템의 기본 구조

 

더보기

컴퓨터 시스템 = 하드웨어 + 소프트웨어

 

하드웨어 예시

  • 본체(메인보드) 
  • 모니터 
  • 키보드, 마우스 
  • 프린터

소프트웨어 예시

  • 운영체제(windows, mac os) 
  • 오피스, 웹브라우저 
  • 미디어플레이어 
  • 프린터 드라이버

 

 

2. 하드웨어

더보기

컴퓨터를 구성하는 물리적인 장치들의 집합

메인보드를 중심으로 입/출력장치, 기억장치가 연결

 

중앙처리장치

  • 제어장치, 연산장치, 레지스터 등으로 구성
  • 개인용 컴퓨터에서는 중앙처리 장치를 마이크로프로세서라고 부름

입력장치

문자나 기호와 같은 데이터를 컴퓨터가 이해할 수 있도록 전기적인 신호로 변환

 

출력장치

사람이 인지할 수 있는 문자나 기호, 도형, 소리 등으로 결과를 출력

 

기억장치

  • 컴퓨터가 처리에 필요한 프로그램과 데이터를 저장
  • 주기억 장치
    • 컴퓨터 내에서 처리를 위한 명령어와 데이터들을 기억
    • 입력장치로부터 들어온 자료는 주기억장치에 저장
    • 용량이 적고 속도가 빠름
  • 보조기억장치
    • 주기억장치를 보조
    • 용량이 크고 속도가 느림
    • 자기디스크, 자기테이프, 하드디스크, CD-ROM, DVD, USB 등

3. 소프트웨어

더보기

시스템 소프트웨어

컴퓨터를 작동시키고 다루기 위한 프로그램

 

응용 소프트웨어

사용자의 활용 용도에 맞추어 개발된 소프트웨어

 

특수한 소프트웨어

  • 디바이스 드라이버(Device Driver)
    • 하드웨어와 운영체제의 중간에 위치
    • 각종 내부/외부 장치를 동작시키는 일을 함
  • 펌웨어(Firmware)
    • 시스템의 동작을 위해 ROM에 들어있는 기본 프로그램
    • 하드웨어 제어에 주로 사용
    • 전형적인 처리루틴, 비휘발성, 변경불가 등의 특징으로 특수한 영역에 사용

정리

 

 


중앙처리장치

 

1. 프로세서

더보기

프로세서=컴퓨터의 두뇌

  • CPU(Central Processing Unit)
  • 명령어를 수행하고 데이터를 처리하는 장치
  • 연산장치, 제어장치, 레지스터 등으로 구성
  • 16비트, 32비트, 64비트 => 비트 수가 클수록 성능이 좋음

프로세서의 구성

출처 : https://mk28.tistory.com/15
  • 프로세서와 주기억장치는 버스(BUS)로 연결

프로세서의 구성

  • 연산장치
    • 자료를 처리하고 계산하는 장치
    • 산술연산 : 사칙연산
    • 논리연산 : 논리합(OR),논리곱(AND),논리부정(NOT)
  • 제어장치
    • 프로그램에 의해 주어지는 연산의 순서를 차례대로 실행
    • 기억장치, 연산장치, 입출력 장치에 제어신호를 발생
    • 이등 장치로부터 신호를 받아 다음에 처리할 작업들을 제어
  • 레지스터
    • 실행의 중간 결과나 적은 양의 자료를 임시로 저장하는 CPU 내의 임시기억장치
    • 데이터 접근속도가 매우 빠른 적은 수의 메모리 회로
    • 범용 레지스터와 특수 레지스터

프로세서 설계 방식에 따른 구분

 

CISC(Complex Instuction Set Computer)

  • 복잡하고 기능이 많은 명령어로 구성된 프로세서
  • 필요한 모든 명령어 세트를 갖추도록 설계함
  • 복합 명령을 가짐으로써 하위호환성을 충분히 확보
  • 트랜지스터 집적에 있어서 효율성이 떨어짐 
  • 전력 소모가 크며, 속도가 느리고 가격이 비쌈 
  • 386, 486, Pentium 등 PC용 CPU에 사용

RISC(Reduced Instruction Set Computer)

  • CPU의 명령어를 최소화하여 단순하게 제작된 프로세서 
  • 하드웨어가 간단한 대신 소프트웨어는 복잡하고 크기가 커짐 
  • 하위 호환성 부족 
  • 전력 소모가 적음, 속도가 빠르고 가격이 저렴 
  • 멀티태스킹이 가능 
  • 모토롤라 68계열, 매킨토시, 서버나 워크스테이션 등에 사용

2. 프로그램 실행과 명령어 처리

 

더보기

명령어(기계어)

  • 연산(Operation)과 연산에 필요한 데이터를 저장하는 주소로 구성
  • 연산은 ADD, SUB, MUL, DIV 등을 의미함
  • 명령어의 크기는 일반적으로 워드 크기와 일치

어셈블리어

기계어 명령어를 문자화, 기호화

프로그램의 작성이 용이

기계어와 어셈블리어는 1:1 매핑 관계

 

명령어 처리 과정

  • 컴퓨터는 주기억장치에 기억되어 있는 프로그램 명령어(program instruction)를 호출하는 패치 과정을 수행하고 해석
  • 해석된 결과에 따라 자료를 이동하고 연산 및 입출력을 실행
  • 호출(Fetch) 사이클
    • 레지스터 PC(프로그램 카운터)에 저장되어있는 값에 해당하는 주기억 장치로 가서 데이터를 복사
    • 레지스터 IR(명령어 레지스터)에 저장
  • 해석(Decode) 사이클
    • 레지스터 IR로 가져온 기계어 비트열을 해석
    • 연산자의 유형에 따라 피연산자 필드를 적절히 나눔
  • 실행(Excute) 사이클
    • 레지스터 IR의 기계어 비트열을 ALU, 범용 레지스터 및 주기억장치에 보내 기계어 명령어 수행

레지스터 종류

 

명령어 형식 : 3-주소 형식

  • 명령어는 주소의 수에 따라 3-주소, 2-주소, 1-주소, 0-주소 형식으로 구별
  • 3-주소 형식 : 주소1과 주소2는 피연산자, 주소3에 연산 결과를 저장

명령어 형식 : 2-주소 형식

  • 주소1과 주소2는 피연산자 연산
  • 결과는 주소1 또는 주소2에 저장

명령어 형식 : 1-주소 형식

  • 주소 1이 피연산자
  • 연산은 누산기로 불리는 1개의 레지스터에 대해서 실행

 


기억장치

1. 기억장치

 

더보기

기억장치(Memory)정의

  • 프로그램, 처리할 데이터, 처리한 결과 등을 저장하는 장치
출처 : https://velog.io/@steadygo247/%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0

기억장치(Memory) 종류

2. 주기억장치

 

더보기

주기억장치(Main-Memory)

  • 중앙 처리 장치와 직접 자료를 교환할 수 있는 기억 장치
  • 프로그램 수행에 필요한 기본적인 명령어와 데이터를 기억함
  • 집적회로의 작은 실리콘 판에 기억 소자 회로를 대량 집적함
  • 크기가 작고, 속도가 빠르며, 전력소모가 작음 고속의 데이터 처리가 가능함
  • 대량생산 가능, 성능에 비하여 저렴함
  • RAM과 ROM으로 구별

주기억장치 - ROM(Read Only Memory)

  • 원칙적으로 읽기는 가능하나 쓰기는 불가능한 메모리
  • 전기 공급이 없어도 기억된 내용이 지워지지 않는 비 휘발성 메모리
  • 컴퓨터를 처음 공급할 때 입출력에 관한 명령을 저장하는 메인보드 BIOS나 그래픽 BIOS용으로 많이 사용

주기억장치 - RAM(Random Access Memory)

  • 휘발성 메모리로 전원 공급이 중단되면 기억된 내용이 소멸됨
  • 기억된 내용을 자유롭게 읽을 수 있고 데이터를 임의로 기억시킬 수 있음
  • 종류 : 정적RAM(SRAM), 동적RAM(DRAM), VRAM 등

정적 RAM과 동적 RAM 비교

 

3. 보조기억장치

 

더보기

보조기억장치(Auxiliary/Secondary Memory Unit)

  • 주기억장치의 제한된 용량을 지원하는 장치
  • 중/대형 컴퓨터에서는 자기디스크, 자기 테이프 등을 사용
  • 개인용 컴퓨터는 플로피디스크, 하드디스크 CD, DVD 등을 주로 사용

디스크

  • 플로피디스크
    • 디스켓(Diskette)
  • 하드디스크
    • 가장 많이 쓰이고 있음
    • 가격대비 성능이 우수

시디롬(CD-ROM)

  • CD-ROM
    • 멀티미디어 시대의 필수적 저장 매체로서 용량/가격 비율이 가장 저렴
    • 읽을 수만 있으며 1, 2, 4배속 등의 속도로 발전
    • 1x = 150Kbyte/sec & 200~530RPM
  • CD-RW
    • 기존의 읽기 전용 기능에 쓰기 기능이 가능한 매체

DVD롬

  • Digital Video Disk
  • 4.7 GB(single-sided, single-layer - common) ~ 17.08 GB(double-sided, double-layer - rare)
  • 650 nm laser, 10.5 Mbit/s (1×)

낸드 플래시 메모리(Nand Flash Memory)

  • 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성 컴퓨터 기억 장치로서 현재 가장 많이 사용되는 메모리 종류
  • USB Drive, SSD, 휴대용 정보통신기기의 메모리로 사용됨

USB Flash Drive

  • USB 포트에 꽂아 쓰는 이동이 편리한 저장 장치
  • 크기가 작아 휴대하기가 매우 간편함
  • 보안용 암호장치가 있어 자료를 안전하게 보관 가능
  • 공인인증서 등을 안전하게 사용할 수 있어 정보의 외부 유출 위험을 줄일 수 있음

SSD(Solid States Drive)

  • Flash Memory를 기존 HDD의 데이터 전송 인터페이스와 결합(SATA, PCIe 등)하여 HDD를 대체하는 저장장치로 사용
  • 가볍고 데이터처리 속도가 빠름
  • 외부충격에 강하며 조용함
728x90
728x90

문자의 표현

1. 정보의 디지털 변환

더보기

디지털데이터

  • 디지털 컴퓨터는 문자나 숫자 등의 정보를 0과 1의 비트로 구성된 디지털데이터로 표현하고 저장(처리)
  • 예1) 문자열 "ABC" : 01000001 01000010 01000011
  • 예2) 정수 5 : 101

비트와 바이트

  • 비트와 바이트는 정보 표현의 단위
  • 비트 
    • 정보를 표현하는 최소 단위
    • 0과 1로 표현
  • 바이트
    • 정보(영문자, 숫자)를 표현하는 기본 단위
    • 1바이트 = 8비트

워드(Word)

  • 명령이나 연산을 처리하는 기본 단위
  • 컴퓨터의 종류에 따라 2bytes, 4bytes, 8bytes로 다름

 

기억 용량의 크기

출처 : https://blog.naver.com/history11109/221212391519

 

코드(Code)

  • 컴퓨터에서 사용하는 문자는 영문 대소문자, 숫자, 특수문자 등이 있음
  • 컴퓨터에서 문자를 비트로 표현할 때 일정한 규칙이 필요
  • 문자의 표현을 위해서 미리 약속된 코드 체계를 사용

 

문자 표현을 위한 코드 체계

  • 초기에는 다양한 방법으로 문자를 표현
  • 때문에 컴퓨터간 호환의 문제가 발생 -> 표준화

2. 문제 데이터 표현

 

더보기

아스키(ASCII) 코드

출처 : https://velog.io/@dingdoooo/JavaStudy-4.-%EC%95%84%EC%8A%A4%ED%82%A4%EC%BD%94%EB%93%9C-Char-String-%EB%B3%80%ED%99%98%EA%B3%BC-%EC%9D%91%EC%9A%A9
  • 1967 미국 표준 협회(ANSI)에서 제시한 표준 코드 체계
  • 7비트를 사용해서 문자 표현
  • 영문 대/소문자
  • 숫자 0~9
  • 특수 문자
  • 제어 문자

2. 확장 아스키 코드

ASCII는 나라별 언어 표현이 불가능

256(=2의8승)개의 문자를 표현

기존 7비트 ASCII코드에는 가장 왼쪽에 0을 추가

 

3. 유니코드

유니코드는 전 세계의 모든 문자와 기호를 표현

16개의 비트를 사용해서 최대 65.536자를 표현

인코딩 방식은 UTF-8, UTF-16, UTF-32 등이 있음

 

정리

 

문자 표현을 위한 코드 체계

  • 초기에는 다양한 방법으로 문자를 표현했다.
  • 그래서 호환의 문제가 발생했는데 이를 표준화 시켰다.
  • 그것이 아스키코드랑 유니코드이다.

숫자 데이터 표현

1. 진법과 수의 구성

더보기

숫자의 디지털 표현 - 2진수

  • 진법 : 임의의 수를 숫자로 표현하는 방법
  • 디지털 컴퓨터는 두 개의 전기 신호(0또는1)를 이용해 정보를 표현

10진수

  • 0~9까지의 숫자로 표현

8진수

  • 0~7까지의 숫자로 표현
  • 2진수 3자리를 묶어서 하나의 수로 표현

16진수

  • 0~9까지의 숫자와 10~15까지를 의미하는 A~F까지의 문자로 표현

 

자릿값

  • 진법에 따라 각 숫자는 별도의 자릿값을 가짐
  • 해당 진수에 제곱수를 적용하여 자릿값을 계산

 

2. 진법의 변환

 


정수의 표현과 연산

1. 정수의 표현

 

더보기

부호-크기 방식

  • 제일 왼쪽 비트(MSB: Most Significant Bit) : 정수의 부호
  • 나머지 비트 : 정수의 절대값

보수

  • 두 수의 합이 진법의 밑수 (N)가 되게 하는 수
  • 음의 정수를 표현하기 위해 고안된 개념
  • 컴퓨터 내부에서는 사칙연산을 모두 가산기(덧셈)를 이용
  • 뺄셈은 덧셈 형식으로 변환하여 계산해야함
  • 예) A - B => A + (-B)

2의 보수로 표현하는 방식

  • 음수를 2의 보수로 표현
  • 2의 비트제곱에서 절대값을 뺀 숫자가 2의 보수
  • 예) -2의 2의 보수는?
    • -2의 절대값 2를 이진법으로 나타냄(3비트) -> 010
    • 3비트를 사용하는 경우, 2^3 = 1000
    • 1000 - 010 = 110 -> -2의 2의 보수

2. 정수의 연산

 

 

더보기

이진수의 덧셈

  • 일반 덧셈과 마찬가지로 계산
  • 계산된 결과는 진법 변환에 의해 10진수 등으로 변환

이진수의 뺄셈

  • 2의 보수 방식을 사용하여 계산

정리

  • 부호-크기 방식
  • 첫번째 비트는 부호를 표현, 나머지 비트는 값을 표현 
  • 보수의 개념을 사용하여 음의 정수를 표현 
  • 보수를 사용한 뺄셈연산 수행
728x90
728x90

디지털이란?

 

1. 디지털 데이터

아날로그의 디지털화

아날로그 : 연속적으로 이어지는 정보  / 자연의 모든 것은 아날로그 정보

디지털 : 디짓(Digit) ➔ 숫자, 이산적인 정보 / 바이너리 디짓(binary digit) ➔ 비트(bit)

 

2. 현실 세계와 디지털 세계

현실 세계의 물질, 생각, 활동은 그 자체로 디지털로 변환될 수 없음

기호화되어 비트로 변환되고 표현됨

현실 세계의 데이터를 디지털로 표현 

책 • 편지 • 종이서류 • 지도 

ㄴ>전자책 • 이메일 • 전자문서 • 내비게이션

 

3. 디지털 혁명

디지털 기술의 진화로 사회적, 경제적 측면에서 획기적인 변화를 유발

디지털은 정보의 생산과 전달, 공유 속도를 극대화하고 지식에 대한 접근성을 향상시킴 

더보기

 

영구성

  • 아날로그정보와다르게소멸되지않으며, 영구적으로디지털공간에저장됨
  • 물리적장소에상관없이네트워크안에서하나의공간에존재함
  • 시간이지나도변형되지않음

복제성

  • 디지털정보는문서, 소리, 이미지등 다양한형태로원본을재현
  • 아날로그정보도 디지털형태로전환되어저장
  • 디지털콘텐츠는복제되고결합되며확대재생산가능
  • 시간과공간의제약없이복제된원본을쉽게활용 가능

연결성

  • 하나의디지털공간내에서상호 연결됨
  • 검색과링크를통해언제라도접근이 가능함
  • 디지털정보는상호연결되어새로운 지식으로축적됨

 

자동화

산업화 사람의 육체노동을 기계가자동화함

ㄴ>정보화 인간의두뇌 노동을 컴퓨터가자동화함

 

 

정리

디짓(Digit) : 숫자, 이산적인 정보

바이너리 디짓(binary digit) : 비트(bit)


 

컴퓨팅 개념

초기의 컴퓨터는 사람보다 계산을 빠르고 정확하게 처리하기 위해 개발

문자, 그림, 소리, 동영상 등 다양한 유형의 데이터를 처리

 

1. 비트

Binary Digit의 약자로 정보 표현의 가장 기본적인 단위

0과 1로 정보를 표현

 

2. 왜 2진법을 쓸까?

2진법 - 정보를 다루는 가장 경제적인 방법

 

3. 컴퓨터

방대한 양의 데이터와 정보를 저장하고 처리할 수 있는 전자적 기계 장치

정보를 저장, 검색, 정리, 수정하기 위해 프로그램을 사용

 

더보기

컴퓨터의 기능

  • 입력 기능 : 처리할 외부 데이터를 컴퓨터로 입력
  • 기억 기능 : 데이터, 처리 결과, 프로그램 등을 기억
  • 연산 기능 : 사칙연산, 논리연산 등의 연산을 수행
  • 제어 기능 : 명령을 해독하고 각 장치들을 통제
  • 출력 기능 : 처리된 결과를 사람이 이해할 수 있는 형태로 출력

컴퓨터의 특징

  • 신속성 : 자료를 빠르고 신속하게 처리 
  • 정확성 : 계산 시에 에러나 오타를 최소화하고 정확하게 계산 입력 값에 대해 똑같은 출력 값을 보장 
  • 자동화 : 입출력을 비롯한 전체 처리 과정을 자동적으로 처리
  • 저장 능력 : 거대한 양의 데이터를 저장하고 처리
  •  

정리

더보기

비트

  • Binary digit의 약자로 정보 표현의 가장 기본적인 단위 
  • 이진수는 0과 1로 정보를 표현

컴퓨터

  • 방대한 양의 데이터를 저장하고 처리할 수 있는 전자적 기계 장치
  • 정보를 저장, 검색, 정리, 수정하기 위해 프로그램을 사용

컴퓨터의 발전

1. 컴퓨터의 기원

더보기

초기의 계산기 - 주판

  • 기원전 3,000년 ~ 2,500년
  • 로마인 : Calculi라 부름

 

파스칼의 톱니바퀴 계산기

  • 1645년 발명
  • 톱니바퀴 회전 원리를 이용
  • 최초의 기계식 계산기 (10진수의 덧셈과 뺄셈)
  • 라이프니츠가 이를 개선 (곱셈과 나눗셈)

 

찰스 베비지의 차분엔진

  • Difference Engine : 1822년 프랑스 직공 재쿼드와 함께 개발
  • 매우 큰 수학적 표를 계산하는 기계적인 방법
  • 로그함수, 삼각함수의 계산 가능
  • 기억, 연산, 입출력 장치 등을 갖춤

 

엘런 튜링

  • 알고리즘과 계산 개념을 구현한 튜링 기계라는 고안(1936)
  • 적절한 기억장소와 알고리즘만 주어지면, 모든 계산이 가능함을 증명 범용(프로그램 내장식)
  • 컴퓨터를 위한 기초적인 모델을 제시

 

튜링 기계

  • Universal Computing Machine
  • 테이프를 가지고 있는 유한 상태의 기계
  • 테이프에는 부호를 기록, 읽기, 변경할 수도 있음

2. 컴퓨터의 발전

더보기

ABC

  • 아이오와 주립대학 물리학부
  • 최초의 전자식 컴퓨터(1939)
  • 선형대수학의 문제를 풀기 위한 목적으로 개발
  • 특징
  • 이진수의 사용
  • 모든 계산을 전자 계산함
  • 계산부와 메모리의 분리

 

마크-I

  • 하바드대학 하워드 에이킨
  • 전기기계식 자동 계산기
  • 덧셈, 뺄셈, 곱셈, 나눗셈을 순서대로 수행
  • 천공된 종이테이프로 제어
  • 미국 해군의 탄도 계산에 이용

 

애니악

  • 미국 펜실베니아 대학교의 모클리와 에커트가 개발(1946)
  • 전기기술과 결합되면서 전자회로를 사용한 컴퓨터의 등장
  • 진공관 사용, 10진수 계산, 연결회로를 수동으로 조작

 

폰 노이만(1903~1957)

  • 현재와 같은 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터 구조 확립(1945)

 

EDSAC

  • 영국 캠브릿지 대학 개발, 최초의 프로그램 내장방식 컴퓨터(1949)
  • 프로그램을 내부 기억장치에 저장한 후 정해진 명령 순서대로 수행
  • 10진수 체계 이용

 

EDVAC

  • 펜실베니아 무어 스쿨에서 개발(1950)
  • 모클리와 에커트가 ANIAC을 개량해서 프로그램 내장 방식으로 개발
  • 2진수를 사용하여 연산 속도를 비약적으로 향상

 

제 1세대 컴퓨터(1951~1958)

  • 진공관(Vacuum Tube)이 컴퓨터 회로 소자에 사용
  • 수천 개의 진공관을 사용해서 전력소모 및 열이 많이 발생
  • 주기억장치에 자기 드럼, 입출력 보조 기억 장치로 천공 카드 사용
  • 프로그램은 기계어를 사용해서 작성
  • ENIAC, EDVAC, IBM650, UNIVAC 등

 

제 2세대 컴퓨터(1958~1963)

  • 회로소자로 트랜지스터를 사용
  • 주기억장치에 자기 코어
  • 보조기억장치로 용량이 큰 자기드럼, 자기 디스크
  • 입출력 장치로 자기테이프, 종이카드 사용
  • IBM 1401, IBM 7070, UNIVAC 1100/2200 시리즈, CDC 3000 계열
  • COBOL, FORTRAN, ALGOL 등 프로그래밍 언어의 출현
  • 운영체제의 개념을 도입

 

제 3세대 컴퓨터(1965~1974)

  • 회로 소자로 집적회로(IC : Integrated Circuit) 사용
  • 1971년 인텔사 - 초소형 전자 회로 Intel 4004 마이크로 프로세서 개발
  • 중앙처리장치는 소형화되는 반면 기억 용량은 증대
  • IBM System 360(1964년), PDP-11(1970~1990s)
  • 중앙의 대형 컴퓨터를 시간적으로 분할하여 사용하는 시분할 방식 실현
  • BASIC(Beginner’s All-purpose Symbolic Instruction Code)

 

제 4세대 컴퓨터(1971~현재)

  • 고밀도 집적회로(LSI)와 초고밀도 집적회로(VLSI)를 사용
  • ANIAC에 사용된 18,000개의 회로 소자가 VLSI 칩 하나에 압축
  • Intel 8086, 80286, 80386 프로세서
  • 애플컴퓨터(1976)
    • 스티브 잡스와 스테픈 워즈니악 • 최초의 마이크로 컴퓨터
  • IBM PC(1981) 
    • PC 내부구조를 공개로 많은 업체가 참여 • 저가격 고성능으로 대중화에 성공

 

제 5세대 컴퓨터(현재)

  • 초대규모 집적회로(ULSI)를 사용
  • 인텔486, 펜티엄 등
  • 특징(미국방성 정의)
    • 초고속 장치
    • 대규모 병렬처리 시스템 구조
    • 논리적 추론을 지원
    • 논리 프로그래밍, 인공지능 기법, 병렬처리 지원

 

컴퓨터 세대별 분류

728x90

+ Recent posts