타키탸키
로그인
타키탸키
로그인
학은제 1학기 1주차 2교시
타키탸키
·
2021년 5월 10일
팔로우
1
디지털 공학
마이크로프로세서
시스템 프로그래밍
운영체제
전산 개론
컴퓨터 공학
학점은행제
1
학점은행제
목록 보기
2/49
💽 디지털 공학 개론
정보 표현
가능한 수 체계: 10, 2, 8, 16진수
10진수
한 자리에
0에서 9까지
의 수를 사용하여 수 표현
9보다 큰 수는
여러 개의 숫자
를 사용하여 표현
각 숫자의
자릿수(가중치)
가 10의 거듭 제곱을 가진다
MSD
(Most Significant Digit): 가장 큰 자릿수
LSD
(Least Significant Digit): 가장 작은 자릿수
2진수
한 자리에
0에서 1까지
의 수를 사용하여 수 표현
2진 숫자
(binary digit) /
비트
(bit)
디지털 시스템과
회로 설계
에 적합(전압 허용 레벨)
저장된 데이터에
왜곡
발생 >>
허용 전압 레벨
(1.5v에서 3.5v 사이의 전압 처리X)에 의해 원래 신호값으로 재생 >>
신뢰도
높음
비트 수에 따른 10진수 표현 범위
4비트: 0~15
8비트: 0~255
16비트: 0~65535
2진수를 10진수로 변환하는 방법
각 2진 비트에
자릿수를 곱
한 후, 모두 더한다
10진수를 2진수로 변환하는 방법
10진수를 2로 더이상 나눌 수 없을 때까지
나눈 후
, 그 몫과 나머지를
역으로 읽는다
정해진 비트를 가지고 컴퓨터에서
문자와 숫자, 특수문자
를 저장하거나 처리한다
7비트 문자코드: ASCII 코드
💻 마이크로프로세서
마이크로프로세서
종류
인텔 80 계열
모토롤라 68 계열
인텔 80
계열
4비트
마이크로프로세서 4004가 최초
8비트
8080
부터
대중적
사용
CP/M 운영체제 등장과 함께
PC용 CPU
로 널리 사용
자이로그
8080 개량
하여 만든 8비트 Z8, Z88C00, Z89 계열
모토롤라 680
계열
8비트 mc68XX 개발
MC6801 개발 이후, 68HC11, 68HC16, 68332 등으로 발전
Mos
테크놀로지
널리 사용되는 8비트
6502
개발(
애플 컴퓨터 CPU
)
삼성전자
4비트
마이크로컨트롤러 KS51, KS56, KS57 계열 개발 시작
자이로그
의 super9 코어 도입 >>
KS88
계열
16비트
KS16계열,
32비트
KS32계열
80 계열
(인텔)
8비트: 8080
8비트 성능 향상: 8085
16비트
: 8088(XT 컴퓨터),
데스크탑
80286(향상된 16비트), 80386, 80486, 80586 >>
팬티엄
68 계열
(모토롤라)
8비트: 6800
8비트 성능 향상: 6809,
6502
(MOS, 애플)
16비트:
68000
(매킨토시) >> 현재는 팬티엄 사용
8비트
인텔:
8051
계열
마이크로칩:
PIC
계열
아트멜:
AVR
계열
모토롤라: 68k 계열
자이로그: Z88 계열
32비트
인텔: 80960
모토롤라: 68332
ARM
계열
인텔
8051
계열
CISC
방식
마이크로컨트롤러 개발 초기에 8비트 시장에서
큰 인기
를 누림
직접 생산
함
현재, 아트멜, 필립스 등에서
호환 프로세서
를 생산함
8051 코어(대표)는 아직도
많은 전자 제품에서 사용
(안전성)
내부 데이터 RAM(128) / 내장 특수 기능 레지스터(128) / 내부 프로그램 메모리(4K >> 4096) / 외부 확장 프로그램 메모리(60K) / 외부 프로그램 메모리(4K)
마이크로칩
PIC
계열
RISC
방식, 8비트 마이크로컨트롤러
속도, 내부 메모리 용량, 내장 디바이스 특성에 따라 PIC12, PIC14, PIC16, PIC17, PIC18 계열
동작 전원 범위(
2.0V~6.0V
)가 넓고 소비 전류 수는 mA 이하이며, 파워 on Reset과 원 칩 타이머, ROM 등을 내장 >>
소형 제품
에 적합
아트멜
AVR
계열
ATiny, AT90S, ATmega 계열
동작 전원 범위(
1.8V~5.5V
)가 넓음
프로그램 코드를 저장할
플래시 메모리
데이터를 저장할
EEPROM, SRAM
등 다양한 메모리
모든 계열이 ROM writer와 같은 별도의 장비 없이
PC에서
AVR의 내부 플래시 메모리로
프로그램을 저장
하는
ISP
(In-System Programming) 기능을 갖추고 있음
동작 속도
비교
PIC: 5Mips(20MHz >> 1/4 분주)
8051: 2.5~3Mips(20M >> 1/7~8 분주)
AVR
: 8Mips(8MHz >> 분주X), 가장 빠름
명령어 개수
비교
PIC
: 약 35개, 배우기는 편하지만 프로그램 작성 어려움
8051: 약 111개
AVR: 약 120개
가격
비교
PIC, 8051:
OTP
(One-Time Programmable), 1OTP(1회만 쓰기 가능 >> MASK, P ROM)
AVR
: OTP 타입 없고
플래시 메모리만
제공 >>
단가
가 높음
데이터 메모리(
RAM
) 비교
PIC: 128~256바이트
8051: 128 + 외부 RAM(최대 64K 바이트)
AVR
: 512 + 외부 RAM(최대 64K 바이트) >> 가장 큼
프로그램 메모리(
ROM
) 비교
PIC, 8051: 초기에 ROM, EPROM 타입만 제공 >> 요즘에는 플래시 타입 모델도 출시
AVR
: 모든 계열에서
플래시 타입
을 제공 >>
단가
가 높음
프로그래밍 방식
비교
PIC, 8051: 일부 모델은
ROM 라이터
와
자외선 이레이저
(UV erasure) 필요 / 플래시 타입은 ISP로 편리하게 프로그래밍
AVR: 모든 계열을
ISP 방식
으로 프로그래밍 할 수 있다는 장점
개발 언어
8051: 어셈블리어와 C언어 >> C언어는 느림
PIC: 어셈블리어가 좋고 C언어는 하드웨어 구조상 문제 많으며 코드의 효율도 좋지 않음
AVR
: 어셈블리어와
C언어
모두 좋음 / C언어의 경우, 속도 차이 있지만 무시할만한 수준
8051 / PIC는
C 컴파일러가 고가
>> 일부 기능 제한하여 무료로 제공
AVR은 상용에 뒤지지 않는
무료 버전인 AVR-GCC
있음 / 8비트 중에서
유일하게
gcc 포함
최근
8051
은 무료로 제공하는
SDCC
도 있음
정리
PIC
: 부품 가격 저렴하고 심플 + 컨트롤러 성격 강함 >>
양산용
8051
: AVR과 PIC의
중간
>> 플래시 타입 이용시 업그레이드 가능
AVR
: 기존 마이크로프로세서에 RAM과 ROM 부착 >>
교육용
/ 부품
가격
비싸고 업그레이드 비교적 용이 >> 계측기 /
고급 기종
ARM 코어
임베디드
시스템에서
저전력, 저발열, 고성능
의 이점
ARM7을 필두로 ARM9, ARM11 등 >> 제조 업체의 폭넓은 지지
현재 PDA, 게임기, PMP, 태블릿 PC 등 저전력을 요구하는
소형 기기
혹은
네트워크 장비
인 IP 공유기나 라우터 등에 사용
인텔 8051
계열 마이크로 컨트롤러
MCS-51
계열: 8051 기본 구조를 중심으로
일부 변형된 CPU
통칭
하버드
구조,
CISC
머신
4K바이트 프로그램 메모리(ROM)와 128바이트 데이터 메모리(RAM)를 내장
16비트 타이머 2개
64K바이트 외부 프로그램 메모리 공간과 64K바이트 외부 데이터 메모리 공간
내장된 프로그램 메모리는
MROM
(Mas ROM)
인텔 MCS-51 계열 주요 모델 특징
WDT
(Watchdog Timer):
32비트 분주기
를 이용하여 카운트
시스템 RC 오실레이터로부터
클럭
제공
아트멜 8051
계열 마이크로 컨트롤러
인텔의 오리지널 모델에 새로운
I/O 기능을 추가
처리 속도
높여 성능을 향상시킨 다양한 MCS-51 호환 기종 등장
내부 프로그램 메모리를
플래시 메모리
로 사용
사용자 편의성
을 높이거나
패키지의 핀 수
를 20개로
소형화
아트멜 MCS-51 계열 주요 모델 특성
PWM
(Pulse Width Modulation):
펄스폭
변조
필립스
: 초저가형, 저전압형, 플래시 메모리형 >> 다양한 모델의 제품군
달라스
: 배터리 백업 기능 / RTC 기능이 내장된 모델 출시
💾 시스템 프로그래밍
커널
리눅스의
핵심
프로세스와 메모리, 파일 시스템, 장치
관리
컴퓨터의 모든 자원
초기화
및
제어
기능
쉘
사용자 인터페이스
명령 해석
프로그래밍
기능
리눅스 기본 쉘(
배시
쉘)
응용 프로그램
각종 프로그래밍 개발 도구
문서 편집 도구
네트워크 관련 도구
유닉스/리눅스
시스템 프로그래밍
유닉스, 리눅스에서 제공하는
시스템 호출
(시스템 콜, 시스템 함수)을 사용해
프로그램을 작성
하는 것
시스템 호출
유닉스 시스템이 제공하는 서비스를 이용해
프로그램을 작성
할 수 있도록 제공되는
프로그래밍 인터페이스
기본적인 형태는
C언어의 함수 형태
로 제공
리턴값
= 시스템 호출명(인자1, 인자2, ...)
라이브러리 함수
라이브러리: 미리 컴파일된
함수들을 묶어서 제공
하는 특수한 형태의 파일
자주 사용하는 기능을
독립적으로 분리
하여 구현 >> 프로그램의
개발과 디버깅을 쉽게
하고
컴파일을 좀 더 빠르게
할 수 있음
/lib, /user/lib에 위치 >> lib*.a 또는 lib*.so 형태로 제공
시스템 호출 vs 라이브러리 함수
시스템 호출은 커널의 서비스 모듈을
직접 호출
하지만 라이브러리 함수는 직접 호출하지 않음
시스템 호출은 man(명령어 사용법) 페이지가 섹션 2에 속하지만 라이브러리 함수는 man 페이지가 섹션 3에 속함
시스템 호출은 성공하면
0
을 리턴하고 실패하면
-1
을 리턴하지만 라이브러리 함수는 오류가 발생하면 일반적으로
NULL
을 리턴하고 함수의 리턴값이
int형이면 -1
을 리턴한다
둘 모두
errno 변수
에
오류 코드
를 저장한다
C언어
데니스 리치 개발
뛰어난 기능과
융통성
대부분의
시스템 소프트웨어를 구현
하는 언어
고급 언어
이면서 저급 언어처럼 비트나 바이트 처리하고
포인터
에 의해 주소를 처리함
리눅스와 리눅스 애플리케이션
대부분이 C언어로 작성되어 있다
📠 운영체제
제어
프로그램: 감시 프로그램, 작업 관리 프로그램, 데이터 관리 프로그램
감시
프로그램(Supervisor)
가장 중요
한 역할
각종 프로그램의 실행과 처리 등
프로그램의 흐름 전체를 관리/감독
하고
제어
한다
작업 관리
(Job Management) 프로그램
작업이 수행되도록
준비 / 지시
작업이 끝나면
마무리
다른 작업으로의
이동
을 처리
작업이 연속적으로 이루어질 수 있도록 시스템
스케쥴
및
자원을 할당
데이터 관리
(Data Management) 프로그램
입출력
데이터를 관리
주기억장치와 보조기억장치 사이의 데이터
전송과 수정, 삭제, 보관
등의 유지보수 기능을 제공
통신 관리
(Communication Management) 프로그램
CPU와 연결된 각 주변 장치 간의
신호 교환
이 원활히 이루어지도록 통제
외부 통신
회선
과 연결된
통신망
의 통신 제어 담당
처리
프로그램: 언어 번역 프로그램 / 서비스 프로그램 / 문제 프로그램
언어 번역
프로그램
저급언어, 고급언어로 작성한 프로그램을
기계어
로 변역
컴파일러, 어셈블러, 인터프리터
서비스
프로그램
컴퓨터 시스템을
효율적으로 사용
할 수 있도록 지원
사용 빈도 높음
연결 편집 프로그램 /
링커
로더
정렬/병합
프로그램
유틸리티
프로그램
문제
프로그램
특정 업무 및 해결을 위해
사용자가 작성
한 프로그램
편집기, 데이터베이스, 통신용 프로그램, 그래픽 프로그램 등 사용자의 응용 처리를 위해 사용하는 프로그램
자원 관리
기능
컴퓨터 시스템을 구성하는 CPU, 기억장치, 주변장치 등의 자원을 관리
프로세스
관리
프로세스와 스레드
스케줄링
생성과 제거
시작, 정지, 재수행
동기화 및 통신 관리
주기억장치
관리자와 협업
메모리
상태 추적
할당 및 회수
가상 기억 장치 / 페이징 장치
장치 관리자 / 파일 관리자
와 협업
입출력 장치 / 주변장치
스케줄링
파일
관리
생성, 삭제, 변경, 유지
위치와 사용 여부, 상태 추적
운영체제의
서비스
프로그램을
실행
하기 위한
환경
제공
프로그램과 사용자들에게 정해진 서비스 제공
운영체제마다 제공되는 서비스가 다르다
부트스트랩
서비스
부트스트래핑, 부팅:
운영체제가 적재
되는 과정
부트스트랩 로더는
디스크 트랙 0
에, 나머지는 디스크의 다른 부분에 적재
사용자 서비스
프로그래머가
프로그래밍
작업을 쉽게 수행할 수 있도록 제공
사용자 인터페이스
운영체제와 사용자 간
의 통신 및 대화를 하기 위한 서비스
GUI, CUI(Character User Interface), CLI
프로그램
수행
프로그램을
메모리에 적재
하여 실행
프로그램을 정상적 혹은 비정상적으로 끝냄
입출력 동작
수행 중인 프로그램은 입출력 요구, 파일 또는 입출력 장치 지정
파일 시스템
조작
파일을 정확히 읽고 기록
파일 생성, 삭제
통신
하나의
프로세스
와 또 다른 프로세스 사이
같은 컴퓨터 시스템
내부
에서 수행되는 프로세스 사이
네트워크로 연결
된 각각 다른 컴퓨터 시스템 간
오류
발견
컴퓨터 시스템의 모든 장치에서 일어나는 오류를 탐지
시스템 서비스
자원 할당
: 다수의 사용자 혹은 다수의 작업이 동시에 실행될 때, 데이터 혹은 자원들이 각각의 작업에 할당
보호
: 다중 사용자 컴퓨터 시스템에 저장된 정보의 소유자는 다른 사람이 자신의 정보에 접근하는 것을 제한
계정
: 다중의 사용자가 컴퓨터 시스템을 사용하는 기록 보관 / 컴퓨터 시스템 사용량을 알거나, 시스템 사용량 청구, 시스템 사용 통제 등의 관리
시스템
호출 서비스
실행 중
인 프로그램과 운영체제 간의 인터페이스
시스템 호출을 통해 운영체제의 기능을 서비스
API
(Application Programming Interface): 프로세스 제어 / 파일 조작 /장치 조작 / 정보 관리 / 통신
📺 전산 개론
컴퓨터 역사
초기의
계산기
: 중국 주판(최초의 수동 계산기) / 네이피어의 봉
기계식
계산기:
장치
를 이용한 계산기
파스칼
의 톱니바퀴 계산기: 최초의
기계식 수동
계산기
배비지:
해석 기관
(입력장치, 처리기, 제어기능, 기억 장소 및 출력장치)
튜링:
튜링 머신
>>
이론적
제안(컴퓨터의 논리적 근거 제시)
ABC
:
전자식 디지털
계산기 >>
2진수
로 데이터 표현
MARK-1: 하버드 에이큰 교수가
배비지의 해석기관 원리 구현
한
전기 기계식 자동
계산기
ENIAC
: 모클리와 에키트가 개발 >>
배선판
을 이용한
외부 프로그래밍
방식
프로그램 내장
방식:
노이만
(현대 컴퓨터) >> 실행할 데이터와 프로그램을
주기억장치에 적재
후 명령에 순서대로 실행하는 방식
EDSAC
: 윌킨스가 프로그램 내장 방식 도입, 이후 ENIAC을 EDVAC에 구현하여 컴퓨터 시대 개막
제 1세대 컴퓨터
세계 최초로 개발된 상업용 디지털 전자 계산기
UNIVAC
인구 조사
자료 처리
진공관
사용
기계어
로 작성
제 2세대 컴퓨터
쇼클리가
트랜지스터
발명
IBM
회사
컴퓨터의
크기
가 대폭
축소
,
전력 소모량
상당히
감소
,
계산 속도
훨씬
빠름
,
신뢰성
높음
활용 분야 확산: 비즈니스, 산업계, 항공사, 대학교
FORTRAN, COBOL
(고급 언어)
제 3세대 컴퓨터
노이스가
IC
(Integrated Circuit) 칩 처음 개발
트랜지스터 소자가 IC칩으로 대체
IC칩
대량 생산
>> 컴퓨터
가격 저렴해짐
/ 컴퓨터의
성능 대폭 향상
메인프레임 컴퓨터:
IBM 360
3세대 후반기:
미니 컴퓨터
성장, 최초 미니 컴퓨터
PDP-8
제 4대 컴퓨터
수천 개의 소자를 포함하는
LSI
(Large Scale Integration) >>
V(ery)LSI
>>
U(ltra)LSI
메인프레임
: IBM 370 계열, UNIVAC 1100 계열, CDC 170 계열
미니컴퓨터
: VAX-11 계열, MV 8000
마이크로프로세서 칩 개발
하나의 실리콘 칩에 중앙처리 장치(
CPU
) 포함
PC
,
슈퍼 컴퓨터
CRAY-1
개인용 컴퓨터
컴퓨터 대중화
에 큰 역할
ALTO,
애플 컴퓨터
(APPLE 1, APPLE 2)
Intel 80088칩 >> IBM-PC XT, Intel 80286칩 >> IBM-PC AT >> 시장의 90% 차지
노트북 컴퓨터, 넷북, 스마트폰으로 발전
기관
위주의 컴퓨팅 시대
메인프레임
: 대기업, 정부 기관, 대학 등 큰 조직
현대: 복잡한 계산 필요한 공학 및 과학 분야, 기업, 군사적 응용
개인 컴퓨팅
시대: 사무 자동화
사람 간
의 컴퓨팅 시대
WAN
네트워크를 통해 연결
이더넷을 이용한
LAN
활성화
인터넷망 탄생 후,
웹서비스
개발
마이크로소프트사의
인터넷 익스플로러
>> 인터넷
대중화
에 큰 역할
임베디드 및 유비쿼터스
컴퓨팅 시대
마이크로프로세서 칩 개발 이후, 가전 제품을 위한 특수 목적의
마이크로프로세서칩
과 메모리칩 개발
모든 디지털 가전제품과 자동차에 내장(
임베디드
)
유비쿼터스
환경 >> 곳곳에 숨겨짐 >>
센서
메인 컴퓨터와 슈퍼 컴퓨터
메인 컴퓨터
: 은행, 항공사, 대기업, 정부 기관 >>
큰 조직
슈퍼 컴퓨터
: 일기예보, 유전 탐사, 시뮬레이션, 의학 이미지 처리 >>
복잡하고 빠른 계산
일본 요코하마 지구과학 연구소의 NEC가 가장 빠름
서버와 워크스테이션
서버
컴퓨터:
다수의 사용자를 동시
에 지원 >> 미니 컴퓨터 or 워크스테이션
워크스테이션
: 계산 기능이 우수한 고성능 데스크탑 컴퓨터 >>
전문인
들이 사용
최근에는 PC의 성능이 향상되어 워크스테이션과의 경계 불투명
PC와 노트북
PC
: 개인용 컴퓨터, 데스크탑 컴퓨터
저렴
한 가격
노트북
: 휴대성 강조, 랩탑 컴퓨터 >> 태블릿으로 발전
모바일 컴퓨터
휴대성 강조, 포켓용 컴퓨터
PDA, 스마트폰, 넷북
무선 인터넷
기능 >>
실시간
에 무선으로 인터넷 액세스
임베디드
컴퓨터
특수 용도의 마이크로프로세서 칩이
가정용 기기
혹은
가전제품
에 내장
실제적으로
90% 이상
의 마이크로프로세서 칩이 임베디드 컴퓨터 형태
타키탸키
There's Only One Thing To Do: Learn All We Can
팔로우
이전 포스트
학은제 1학기 1주차 1교시
다음 포스트
학은제 1학기 1주차 3교시
0개의 댓글
댓글 작성