자격증관련/2019-2학기: 3개의 글

2019년도 (2)학기 (전자계산기구조) [진행 중]

Posted by nkjok
2019. 8. 29. 17:19 자격증관련/2019-2학기
반응형
공퓽의 트위치 방송 채널
Chu레쉬의 유튜브 채널

전자계산기구조


목차


  전자계산기구조 목차

  1. 컴퓨터 시스템의 구성 요소와 역사
  2. 컴퓨터의 분류
  3. 컴퓨터 정보의 표현
  4. 진법 변환




-------------------------------------------------------------------------
------------------------------------------




1차시 컴퓨터 시스템의 구성 요소와 역사



Computer

사람의 지시에 따라 자동적으로 처리해 주는 전자 장치이다. 데이터를 입력하고 처리하고 필요에 따라 저장하고 결과를 출력해주는 전자장치이다.



Data

어떠한 사실, 개념, 명령 또는 과학적인 실험이나 관측 결과로 얻은 수치나 정상적인 값 등 실체의 속성을 숫자, 문자, 기호 등으로 표현한 것이다.



Program

명령어들의 나열이다.



컴퓨터는 하드웨어와 소프트웨어로 구성됩니다. 하드웨어와 소프트웨어 중 더 중요한 것은 무엇일까요?
컴퓨터에서 기계에 해당되는 하드웨어 장치만으로는 아무 일도 할 수 없습니다.
컴퓨터의 하드웨어가 무엇을 어떻게 할 것인지를 지시해 주는 소프트웨어가 반드시 필요합니다.
물론 소프트웨어가 훌륭하더라도 하드웨어가 없는 컴퓨터는 있을 수 없겠지요?
단지, 비약적인 발전을 거듭하는 하드웨어에 비해 소프트웨어는 매우 느린 속도로 발전합니다.
따라서 소프트웨어가 더 중요하다는 의견도 있지만, 하드웨어와 소프트웨어 모두 중요하다고 생각해 주면 좋을 것 같습니다.


컴퓨터 시스템의 구성
컴퓨터는 하드웨어와 소프트웨어로 구성된다.


하드웨어
중앙처리장치, 기억장치, 입출력 장치로 구성된다.
중앙처리장치에는 산술논리연산장치, 제어장치, 레지스터가 포함된다.
기억장치에는 레지스터, 캐시기억장치, 주기억장치, 보조기억장치가 포함된다.


소프트웨어
소프트웨어는 시스템소프트웨어와 응용소프트웨어로 구성된다.
하드웨어의 발전에 따라 소프트웨어의 중요성이 증가되고 있다.


컴퓨터의 발전 과정
1946년 최초의 디지털 컴퓨터인 ENIAC으로 시작하였다.
EDSAC, EDVAC 컴퓨터는 최초의 프로그램 내장방식을 적용한 컴퓨터이다.
최초의 상업용 컴퓨터는 UNIVAC이다.

# 컴퓨터의 5대 장치 (5대 요소)
1. Input (입력)
2. Process (처리) - 연산, 제어
3. Storage (저장)
4. Output (출력)
=> 입력, 연산, 제어, 저장, 출력 (5개)


------컴퓨터 역사
# 컴퓨터 발전 과정
1. 수동식 계산기 : 수판
- 기원전 3000 ~ 2500 년 경 중국에서 개발, (1980년대까지 사용)

2. 기계식 계산기
- 파스칼라인 (Pascaline)
· 1645 년 프랑스 파스칼, 톱니바퀴 이용
- 가감승제 계산기
· 1671 년 독일 라이프니쯔
- 차분기관 (Difference Engine) 과 분석기관 (Analytical Engine)
· 1820 년 영국 바베지
- 천공카드 도표 작성기
· 1889 년 미국 홀러리스

3. 전기기계식 계산기
- MARK1
· 1944 년 미국 에이컨, (종이 테이프에 천공된 프로그램 명령어들에 의하여 작동하고 제어됨)

4. 전자식 계산기
- ABC computer (아타나소프-베리 컴퓨터)
· 최초의 컴퓨터, 1942 년
· 순차적 방식과 2진법 체계를 사용하는 진공관 방식

5. ENIAC
- 최초의 전자식 디지털 컴퓨터 ( 1946 ) !!중요!!
- 전자적인 가산기를 연산용 기억장치로 사용
- 컴퓨터 내부의 회로 소자로 진공관을 사용
- 프로그램을 작성하려면 컴퓨터 각 부분을 전선으로 연결하고, 프로그램의 수행을 위해서는 6,000여 개 의 스위치 조절

6. 프로그램 내장 방식 컴퓨터
- 1945 년 "폰 노이만" (Von Neumann) 제안
- 컴퓨터에 기억장치를 설치하고, 프로그램과 데이터를 함께 기억장치에 저장했다가, 프로그램에 포함된 명령에 따라 자동으로 작업을 처리하는 방식
- 오늘날 컴퓨터의 기본 사상
- EDSAC (Electronic Delayed Storage Automatic Computer)
· 1949 년 영국에서 최초로 개발된 프로그램 내장 방식의 컴퓨터
- EDVAC (Electronic Discrete Variables Automatic Computer)
· 1952 년 미국에서 최초로 개발된 프로그램 내장 방식의 컴퓨터
# 에드삭, 에드박은 논쟁우려때문에 함께 최초로 거론된다함

7. UNIVAC 1 (Universal Automatic Computer)
- 최초의 순수 데이터 처리용
- 최초의 상업용 컴퓨터

8. IBM 701
- 1952 년에 CRT (cathode-ray-tube) 를 주기억장치로 하고, 보조기억장치로 "자기드럼" 과 "자기테이프"를 채택
- 본격적인 상업용 컴퓨터


9. 세대별 발전과정
1세대 컴퓨터 : 진공관 세대
- 기본 회로 소자 : 진공관
- 1946 - 1956
- 기억장치 : 자기코어, 자기드럼, 수은지연회로
- 과학 기술의 제한적인 용도로만 사용
- 기계어, 어셈블리어 사용
==> 대표적인 컴퓨터 (ENIAC-에니악, EDSAC-에드삭, EDVAC-에드박, UNIVAC-유니박)

2세대 컴퓨터 : 트랜지스터 세대
- 기본 회로 소자 : 트랜지스터
- 1957 - 1964
- 기억장치 : 자기코어, 자기드럼, 자기테이프
- 일반 사무용으로도 사용
- FORTRAN, COBOL, ALGOL 사용
==> 대표적인 컴퓨터 ( IBM 1401 )

3세대 컴퓨터 : 직접회로 세대
- 기본 회로 소자 : 집적회로 (IC, Integrated Circuit)
- 1965 - 1979
- 운영체제와 각종 유틸리티 등 개발
- 시분할 처리를 통해 멀티 프로그래밍 지원
- 캐시 기억장치 등장
==> 대표적인 컴퓨터 ( PDP-11 )

4세대 컴퓨터 : 고밀도/초고밀도 집적회로 세대
- 기본 회로 소자
· 고밀도집적회로 ( LSI, "Large Scale Integrated circuit" )
· 초고밀도집적회로 ( VLSI, "Very Large Scale Integrated circuit" )
- 1980 - 현재
- 개인 컴퓨터의 대중화
- 분산계산, 병렬계산 보편화
------


------------------------------------------




2차시 컴퓨터의 분류



Analog data

연속적인 데이터이다. 데이터를 입력하고 처리하고 필요에 따라 저장하고 결과를 출력해주는 전자장치이다.



Digital data

불연속적인 데이터이다. 데이터를 입력하고 처리하고 필요에 따라 저장하고 결과를 출력해주는 전자장치이다.



Program

명령어들의 나열이다.



마이크를 통해 목소리가 컴퓨터로 입력되기도 합니다.
컴퓨터로 입력되는 데이터는 디지털 데이터이어야 하는데 목소리는 아날로그 데이터이므로
현재 일반적으로 사용되는 컴퓨터는 아날로그 데이터를 입력받는 컴퓨터인가요?
== 마이크를 통해 목소리가 아날로그 데이터로 입력되지만 사운드 카드 내의 모뎀장치에 의해
== 아날로그 데이터가 디지털 데이터로 변환되어 컴퓨터로 입력됩니다.
== 따라서 현재 일반적으로 사용되는 컴퓨터는 디지털 데이터를 입력 받는 컴퓨터입니다.



사용 목적에 따른 분류
전용 컴퓨터는 특정 목적을 위해 사용되는 컴퓨터이다.
범용 컴퓨터는 일반적인 목적을 위해 사용되는 컴퓨터이다.


사용 데이터에 따른 분류
아날로그 컴퓨터는 아날로그 데이터를 사용하는 컴퓨터이다.
디지털 컴퓨터는 디지털 데이터를 사용하는 컴퓨터이다.
하이브리드 컴퓨터는 아날로그 데이터와 디지털 데이터를 모두 사용 가능한 컴퓨터이다.


처리 능력에 따른 분류
마이크로 컴퓨터는 소형 컴퓨터이다.
미니 컴퓨터는 중형 컴퓨터이다.
메인 프레임 컴퓨터는 대형 컴퓨터이다.
슈퍼 컴퓨터이다.


구조에 따른 분류
파이프라인 슈퍼 컴퓨터는 하나의 CPU 내에 다수의 연산장치를 포함하는 컴퓨터이다.
대규모 병렬 컴퓨터는 하나의 시스템 내에 다수의 CPU를 포함하는 컴퓨터이다.


------------(아래) 컴퓨터 분류 정리
---



1. 사용 목적에 따른 분류
#1 전용 컴퓨터
1) 군사용 : 미사일이나 항공기의 괘도를 추적하는 군사용에 쓰임
2) 산업용 : 핵반응 시설을 제어하거나 공장에서 생산 공정을 제어함
3) 업무용 : 지하철의 운행이나 개찰, 의료 단층 촬영 등에 이용됨
4) 기타 : 항공기 및 선박의 자동 조정 장치 등에 이용됨

#2 범용 컴퓨터
1) 일반 기업체나 공공기관에서 사용하는 사무처리용 컴퓨터
2) 과학 기술에 필요한 수치계산
3) 수치해석분야, 선형계획프로그래밍, 모의실험 등의 기술계산용
4) 자동차나 항공기의 설계, 제조, 관리
5) 생산, 판매, 급여, 회계 등의 기업업무나 행정, 금융 등의 사무처리분야 업무



2. 사용데이터에 따른 분류
- 데이터의 개념
1) 아날로그 데이터 (연속적인 데이터)
아날로그 시계 (아날로그는 정밀하고 자세한 정보 "정밀성" 을 제공할 수 있다)
- 초침이 딱딱가는건아니고 부드럽게 쉬~가는거만 아날로그시계, 또한 전자시계는 디지털시계

2) 디지털 데이터 (불연속적인 데이터)
불연속적인 형태로 표현하는 이산적인(discrete) 데이터
전자 시계 (디지털은 "정확성" 이 높다, 아날로그에 비해 "정밀성" 은 낮다)

#1 - 아날로그 컴퓨터
1) 신속한 입력과 즉각적인 반응을 얻을 수 있어 "제어용목적" 에 적합

#2 - 디지털 컴퓨터
1) 우리가 쓰는 컴퓨터가 해당됨 ( "햇갈릴 수 있는거" : 마이크는 사운드카드가 아날로그 소리를 디지털로 바꿔서 컴퓨터에 보내줌)

# 3 - 하이브리드 컴퓨터
1) 컴퓨터가 "직접" 아날로그와 디지털을 넘나듬
2) 아날로그와 디지털의 장점을 취하여 제작한 컴퓨터
3) 어떤 종류의 데이터도 처리 할 수 있는 컴퓨터

정리 : 아날로그, 디지털, 하이브리드
- 3개의 사용데이터에 따른 분류




3. 처리능력에 따른 분류 (시스템규모, 컴퓨터크기 에 따른 분류)
#1 - 마이크로 컴퓨터 (Micro-computer)
1) 마이크로프로세서를 사용하는 컴퓨터
2) 개인용 컴퓨터 또는 PC
3) 가정용이나 작은 사업의 용도로 사용되는 소형의 컴퓨터

- 마이크로 컴퓨터 종류
데스크탑 - Desk-top)
· 이동하기 불편한 선이 다 연결된 컴퓨터

랩탑 컴퓨터 - Lap-top Computer
· 무릎(lap) 에 올려놓을 수 있는 컴퓨터, 충전용배터리 사용, 이동성 좋음

팜탑 컴퓨터 - Palm-top Computer
· 손바닥(palm)에 들어갈 만한 크기의 매우 소형의 컴퓨터, 축소지향형의 일본에서 많이 사용
· 아타리 포트폴리오 - Atari Porfolio, 1989년에 출시된 최초의 팜탑컴퓨터

PDA - Personal Digital Assistant
· 언제 어디서나 이동 중에서도 일을 수행하는 직업에 유용
· 세일즈맨, 보험설계사, 증권주문, 택배 등의 용도에 쓰임
· MB7000 (MobileBase사), PM-350 (PointMobile사), M3 OX10-1G (M3모바일사)

스마트폰 - Smart phone
· 항상 들고 다니면서 인터넷을 검색하거나 메일을 송수신이 가능한 기계
· 동영상과 사진을 촬영하고 편집할 수도 있음
· 다양한 어플리케이션 사용

태블릿 PC - Tablet PC
· 터치스크린을 사용하는 소형의 휴대용 컴퓨터
· 키보드나 마우스 대신 손가락이나 터치펜으로 쉽게 조작 가능
· 평평한 "판 (Tablet)" 의 형상을 하고 있어서 태블릿 PC라고 함


#2 워크스테이션 (Workstation)
1) 데스크탑보다 살짝 큰 컴퓨터
2) 메인프레임이나 슈퍼컴퓨터와 연결하여 업무를 처리 할 수 있음
3) 개인용 컴퓨터와 미니컴퓨터의 중간 단계
4) UNIX 계열의 운영체제를 주로 사용
5) 통신망을 통한 데이터 처리 기능을 가지고 있음
- 워크스테이션 종류
· SUN 워크스테이션


#3 중형 컴퓨터 (Mini Computer)
1) 대용량의 주기억장치와 보조기억장치 그리고 빠른 주변장치로 구성
2) 수십 명 또는 수백 명이 쓰기에 적합한 컴퓨터
3) 대형 컴퓨터보다 가격은 저렴하지만 처리능력이나 기억용량 면에서 우수한 편
4) 중소기업, 학교, 연구소에서 주로 사용
- 중형 컴퓨터 종류
· VAX 780
- 이름이 미니컴퓨터인데 대형보다 작다고 미니라고 지었었다고함


#4 대형 컴퓨터 (Mainframe Computer)
1) 대용량의 저장장치를 보유
2) 다중 입출력 채널을 이용한 고속의 입출력 처리 능력을 보유한 컴퓨터
3) 공공 단체, 대기업, 은행, 병원, 대학 등
4) 보험 회사, 항공사, 정부의 회계 처리 등에서 주로 사용함
5) 다수의 단말기를 연결시켜 온라인 업무나 분산 처리 업무에 이용
6) 대규모 데이터 베이스 저장 및 관리 용으로 사용
- 대형 컴퓨터 종류
· IBM 65IBM의 최신 대형 컴퓨터


#5 슈퍼 컴퓨터 (Super Computer)
1) 복잡한 계산을 초고속으로 처리하는 초대형 컴퓨터
2) 가장 빠르고 비싼 컴퓨터
3) 원자력 개발, 항공우주, 기상 예측 등의 분야에서 사용
- 슈퍼 컴퓨터 종류
· Cray 2S 슈퍼컴퓨터, Titan 슈퍼컴퓨터
- 최신 슈퍼 컴퓨터
· Cray 2 DSC03940 슈퍼컴퓨터, IBM의 MIRA 슈퍼컴퓨터




4. 구조에 따른 분류
#1 파이프라인 슈퍼 컴퓨터 (Pipeline Supercomputer)
1) 하나의 CPU 내에 다수의 연산장치를 포함하고 있는 컴퓨터
2) 각 연산장치는 파이프 라이닝 구조를 이용하여 고속 벡터 계산이 가능

2# 대규모 병렬 컴퓨터 (Massively Parallel Computer)
1) 하나의 시스템 내에 상호 연결된 수백 혹은 수천 개 이상의 프로세스들을 포함
2) 프로세서들이 하나의 큰 작업을 나누어서, 병렬로 처리하는 구조


------------------------------------------




3차시 컴퓨터 정보의 표현



bit

0 또는 1을 표현하는 컴퓨터에서 사용하는 최소 단위이다.



byte

컴퓨터에서 사용하는 의미를 갖는 최소단위로 컴퓨터 기억장치의 용량 단위이며 8bit이다.



word

컴퓨터가 한 번에 처리할 수 있는 데이터 단위이다.



왜 컴퓨터에서는 10진수보다 2진수, 8진수, 16진수를 더 많이 사용하는 걸까요?
10진수 한 자리를 표현하기 위해서는 4bit가 필요하면, 낭비가 발생하지만,
2진수는 1bit, 8진수는 3bit, 그리고 16진수는 4bit를 낭비 없이 사용하기 때문에
컴퓨터에서 2진수, 8진수, 16진수를 10진수보다 더 많이 사용합니다.



컴퓨터에서 정보의 표현 단위
비트는 컴퓨터에서 사용하는 최소단위이다.
바이트는 컴퓨터에서 사용하는 의미를 갖는 최소단위로 컴퓨터 기억장치의 용량 단위이다.
워드는 컴퓨터에서 한 번에 처리하는 단위이다.



2진수 표현
0, 1로 표현되는 수이다.



8진수와 16진수 표현
8진수는 0~7로 표현되는 수이다.
16진수는 0~9와 A~F로 표현되는 수이다.



2진수, 8진수, 16진수를 10진수로 변환
수를 해당 기수(base)의 지수 승으로 분해하고 그 합을 구하면 10진수가 얻어진다.
------------------------------------------




4차시 진법 변환



2진수

0 또는 1로 수로 한자리를 표현하는 수이다.



8진수

0, 1, 2, 3, 4, 5, 6, 7로 표현되는 수로 한 자리를 표현하기 위해 3bit가 필요하다.



16진수

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F로 표현되는 수로 한 자리를 표현하기 위해 4bit가 필요하다.



8진수를 16수로 변환하려면 10진수로 변환하여야 반드시 가능할까요? 더 쉬운 방법은 없을까요?
8진수를 2진수로 변환하고 변환된 2진수를 16진수로 변환하면 훨씬 쉽게 변환이 가능합니다.



10진수를 2진수, 8진수, 16진수로 변환
10진수를 해당 기수(base)로 나누어 나머지를 거꾸로 읽는다.



8진수와 16진수 간의 변환
2진수로 변환한 후 3bit 또는 4bit를 한 자리로 변환하면 된다.
반응형

2019년도 (2)학기 (운영체제) [진행 중]

Posted by nkjok
2019. 8. 29. 17:00 자격증관련/2019-2학기
반응형
공퓽의 트위치 방송 채널
Chu레쉬의 유튜브 채널

운영체제


목차


  운영체제 목차

  1. 운영체제 개요
  2. 운영체제의 기능과 서비스
  3. 프로세스의 개념
  4. 스레드의 개념




-------------------------------------------------------------------------
------------------------------------------




1차시 운영체제 개요


응용소프트웨어

어떤 문제 해결을 해결하기 위해 사용자나 전문가에 의해 만들어진 프로그램이다.



멀티프로세싱

2개 이상의 프로세서를 이용하여 사용하는 시스템이다.



일괄처리

사용자들의 작업 요청을 일정한 분량이 될 때까지 모두 모아 두었다가 한꺼번에 처리하는 방식의 시스템이다.



운영체제에서 커널이라는 것은 무엇인가요?
커널은 운영체제의 핵심으로 메모리에 상주하면서 운영체제의 다른 부분 또는 응용 프로그램 수행에 필요한 환경을 설정하는 소프트웨어이다.
응용 프로그램에 실행에 필요한 다양한 서비스를 제공하고 실행되는 프로세스를 스케쥴링하는 역할을 한다.


운영체제의 개념과 목적
컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어이다.
하드웨어 및 사용자, 응용 프로그램, 시스템 프로그램 사이에서 인터페이스를 제공한다.
프로세서, 메모리, 입출력장치, 통신장치 등 컴퓨터 자원을 효과적으로 활용하려고 조정·관리한다.
메일 전송, 파일 시스템 검사, 서버 작업 등 높은 수준의 서비스를 처리하는 응용 프로그램을 제어한다.
다양한 사용자에게서 컴퓨터 시스템을 보호하려고 입출력을 제어하며 데이터를 관리한다.


운영체제의 종류
동시 사용자 수에 따라 Single-user system과 Multi-user system으로 분류된다.
작업 처리 방법에 따라 Single-tasking system과 Multi-tasking system (Multiprogramming system)으로 분류된다.
사용 환경에 따라 Batch processing system, Time-sharing system, Distributed processing system, Real-time system으로 분류된다.


운영체제의 발달 과정
1940년대에는 운영체제 개념 존재하지 않았고 사용자가 기계어로 직접 프로그램 작성, 실행하는 작업별 순차 처리 시스템을 사용하였다.
1950년대부터 일괄 처리 시스템이 사용되었는데 초기 운영체제인 일괄 처리 시스템(batch processing system)은 작업을 올리는 시간과 해제하는 시간 줄이는 데 관심이 있었다.
1960년대에는 장치 독립성을 이용한 편리한 하드웨어 관리와 다중 프로그래밍 그리고 시분할, 다중 처리, 실시간을 이용한 시스템의 처리 능력이 향상되었다.
1970년대에서 1990년대에는 분산 처리 시스템으로 인해 컴퓨터 네트워크와 온라인 처리 방법이 널리 사용되었다.
2000년대 이후 스마트폰이나 태블릿 같은 모바일 기기가 대중화되면서 모바일 및 임베디드, 가상화 및 클라우드 컴퓨팅이 발달하였다.


------------------------------------------




2차시 운영체제의 기능과 서비스



명령 라인 인터페이스

코드나 단어 등 명령어 입력을 키보드로 요구하는 형태이다.



GUI

사용하기 편리한 사용자 인터페이스로 아이콘 형태를 이용하여 자유로운 마우스 사용을 허용한다.



스마트 자동차에는 어떤 OS 종류가 있을까요?
애플과 구글, 마이크로소프트(MS) 등 주요 기업이 스마트카에 탑재하는 운영체제(OS)를 선보이고 있다.
애플은 iOS(애플 운영체제) 기반의 차량용 OS ‘카플레이’를 내놓았고, 구글은 ‘안드로이드 오토’를 무기로 시장을 공략하고 있다.
그리고 마이크로소프트(MS)는 ‘윈도인더카’를 발표했다.



운영체제의 기능
운영체제 기능은 크게 자원 관리 기능, 시스템 보호, 네트워킹, 명령 해석기와 시스템 관리으로 구분된다.
자원 관리 기능에는 메모리 관리, 프로세스 관리, 주변장치 관리, 파일 관리가 있다.
운영체제는 파일 사용 권한 부여하고 데이터 암호화 등 서비스를 제공하며 데이터와 시스템을 보안한다.
프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결한다.


운영체제 서비스
부트스트래핑 서비스는 운영체제를 메인 메모리에 적재하는 과정이다.
사용자 서비스에는 사용자 인터페이스, 메뉴 인터페이스, GUI(Graphical User Interface), 프로그램 실행, 입출력 동작 수행, 파일 시스템 조작, 통신(네트워크), 오류 탐지가 있다.
시스템 서비스에는 자원 할당, 계정, 보호와 보안이 있다.


운영체제의 미래
사람 같은 인공지능 OS 즉, OS가 기존의 단순 정보전달 차원에서 문제 해결능력을 갖추는 단계까지 이르렀다.
새로운 운영체제는 태블릿PC와 스마트폰은 물론, 사물인터넷 및 ATM기, 심지어 신호등을 비롯한 일상의 기기에도 적용이 가능하다.
애플과 구글, 마이크로소프트(MS) 등 주요 기업이 스마트카에 탑재하는 운영체제(OS)를 선보이고 있다.


------------------------------------------




3차시 프로세스의 개념



프로세스

실행 중인 프로그램으로 여기서 실행중인 프로그램이란 디스크에 저장되어 있던 실행 가능한 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태를 의미한다.



PCB

프로세스에 할당된 자원에 대한 정보를 가지고 있다.



병행프로세스

프로세스가 여러 개 동시에 실행되는 개념이다.



우리가 컴퓨터로 노래를 들으면서 한글프로그램을 이용하여 숙제를 하는 경우에 컴퓨터 내부 프로세스는 어떻게 동작되는 걸까요?
컴퓨터 용어로 쓰이는 프로세스는 실행 중인 프로그램을 의미합니다.
프로세스가 실행되는 동안 생성, 준비, 실행, 대기, 종료의 상태들을 거치는데, 컴퓨터는 여러 일을 처리할 때 프로그램 요소들이 움직이는 일정에 따라 작업 순서를 매깁니다.
이를 스케줄링이라고도 부릅니다. 그리고 정해진 일정에 따라 컴퓨터의 중앙처리장치(CPU)가 그 작업을 실행합니다.
컴퓨터로 노래를 들으면서 한글프로그램을 이용해서 학교 숙제를 하는 경우를 생각해 봅시다.
우리가 느끼기에는 컴퓨터에서 두 가지 일이 동시에 이루어지는 것처럼 느껴지지만 사실은 운영체제의 멀티태스킹 기능이 두 가지 프로세스를 잘게 쪼개어 명령을 처리할 수 있도록 일정을 짜고,
CPU로 명령을 보내 차례대로 필요한 정보를 처리할 수 있도록 하는 과정이 눈에 보이지 않는 속도로 이루어지는 것입니다.
※ 출처 : 천재학습백과 초등 소프트웨어 용어사전, 천재교육



프로세스의 개념
실행중인 프로그램(작업)이다.
운영체제에 들어 있는 프로세스는 제어 블록 PCB 이다.
커널에 등록되고 커널의 관리하에 있는 작업이다.
각종 자원들을 요청하고 할당 받을 수 있는 개체이다.
프로세스 관리 블럭을 할당 받은 개체이다.



프로세스의 종류
운영체제 프로세스는 운영체제 프로세스는 프로세스 상태 순서를 제어하거나 사용하고 있는 프로세스가 다른 사용자나 운영체제 영역을 침범하지 못하게 감시하는 기능을 담당한다.
사용자 프로세스는 사용자 프로세스는 사용자 코드를 수행한다.
병행프로세스는 서로 독립적으로 실행되는 독립 프로세스와 프로세스들이 서로 협력하며 수행되는 협동 프로세스로 구분된다.



프로세스의 상태변화
프로세스의 상태 변화는 운영체제가 프로세서 스케줄러 이용하여 관리한다.
각 프로세스는 생성, 준비, 실행, 대기, 종료 상태로 구분되고 실행하면서 상태가 변한다.
생성 상태는 사용자가 요청한 작업이 커널에 등록되고 PCB가 할당되어 새로운 프로세스가 만들어지는 상태이다.
준비상태는 프로세서를 할당 받으려고 기다리는 상태로 즉시 실행 가능한 상태이다.
실행상태는 프로세서를 점유하여 명령어가 실행되는 상태이다.
대기상태는 이벤트나 입출력 대기 신호 발생을 기다리는 상태이다.
종료상태는 프로세스가 프로세서 외의 특정 자원을 요청하고 이를 할당 받을 때까지 기다리고 있는 상태이다.
------------------------------------------




4차시 스레드의 개념



스레드

프로세스의 특성인 자원과 제어에서 제어만 분리한 실행 단위로써 프로세스 하나는 스레드 한 개 이상으로 나눌 수 있다.



다중 스레드

프로그램 하나를 여러 실행 단위로 쪼개어 실행한다는 측면에서 다중 처리한다.



스레드 장점

사용자 응답성 증가하고 프로세스의 자원과 메모리 공유가 가능하다. 경제성 좋으며 다중 처리(멀티 프로세싱)로 성능과 효율이 향상된다.



프로세스와 스레드의 차이점은 무엇일까요?
프로세스는 실행 중인 프로그램으로 리소스와 스레드로 구성되어 있습니다.
그리고 프로세스는 하나 이상의 스레드를 가지고 있습니다.
스레드는 경량화된 프로세스로서 프로세스 내에서 실제 작업을 수행하고 있습니다.



스레드의 개념
프로세스의 특성인 자원과 제어에서 제어만 분리한 실행 단위이다.
프로세스 하나는 스레드 한 개 이상으로 나눌 수 있다.
프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보 공유한다.
다른 프로시저를 호출하고 다른 실행을 기록한다.(별도 스택 필요)
관련 자원과 함께 메모리 공유 가능하므로 손상된 데이터나 스레드의 이상 동작을 고려한다.
경량 프로세스 LWP는 프로세스의 속성 중 일부가 들어 있는 것이다.
중량 프로세스 HWP는 스레드 하나에 프로세스 하나인 전통적인 경우이다.
같은 프로세스의 스레드들은 동일한 주소 공간 공유한다.
동일 프로세스의 여러 스레드는 코드 영역, 데이터 영역, 운영체제 자원(예: 열린 파일, 시그널)을 공유한다.
프로세스가 다수의 제어 스레드를 가진다면, 프로세스는 동시에 하나 이상의 작업을 실행할 수 있다.



단일 스레드와 다중 스레드
운영체제 프로세스는 운영체제 프로세스는 프로세스 상태 순서를 제어하거나 사용하고 있는 프로세스가 다른 사용자나 운영체제 영역을 침범하지 못하게 감시하는 기능을 담당한다.
사용자 프로세스는 사용자 프로세스는 사용자 코드를 수행한다.
병행프로세스는 서로 독립적으로 실행되는 독립 프로세스와 프로세스들이 서로 협력하며 수행되는 협동 프로세스로 구분된다.



스레드의 상태변화
프로세서 함께 사용하며 항상 하나만 실행한다.
한 프로세스에 있는 스레드는 순차적 실행한다. (해당 스레드의 정보 저장레지스터, 스택)
프로세스 생성하면 해당 프로세스의 스레드도 함께 생성된다. 단, 스레드 생성에서는 운영체제가 부모 프로세스와 공유할 자원 초기화 필요 없다.
프로세스의 생성과 종료보다는 오버헤드 훨씬 적다.
스레드 한 개가 대기 상태로 변환 시 전체 프로세스 대기 상태로 변환하지 않는다.
실행 상태의 스레드가 대기 상태가 되면 다른 스레드 실행 가능하다.(서로 독립적이지 않다.)
프로세스 하나에 있는 전체 스레드는 프로세스의 모든 주소에 접근 가능하여 스레드 한 개가 다른 스레드의 스택 읽기나 덮어 쓰기 가능하다.
프로세서는 여러 사용자가 생성하여 서로 경쟁적으로 자원을 요구하고 서로 다른 관계를 유지해야 하지만 스레드는 사용자 한 명이 여러 스레드로 개인 프로세스 하나 소유한다.
반응형

2019년도 (2)학기 (데이터베이스) [진행 중]

Posted by nkjok
2019. 8. 29. 16:53 자격증관련/2019-2학기
반응형
공퓽의 트위치 방송 채널
Chu레쉬의 유튜브 채널

데이터베이스


목차


  데이터베이스 목차

  1. 데이터베이스 시스템 개요
  2. 데이터베이스 사용자
  3. 데이터베이스 관리 시스템
  4. 데이터베이스 관리 시스템 구성




-------------------------------------------------------------------------
------------------------------------------




1차시 데이터베이스 시스템 개요


데이터베이스

특정 조직의 응용 업무에 공동으로 사용 시 운영상 필요한 데이터를 중복을 최소화하여 기억장치 내에 모아 놓은 집합체이다.
(C.J.Date) 데이터의 중복없이 상호 연관되어 있어 관련된 모든 응용 환경에서 사용할 수 있는 데이터의 집합이다.
(Plamer) 작은 세계 또는 논의 세계라고 부르는 실세계의 일부분을 표현하는 하나의 주제와 관련된 의미 있는 데이터의 모음 이다.


데이터베이스 관리 시스템 (DBMS)

사용자가 데이터베이스를 생성하고 관리할 수 있도록 편리한 기능을 제공하는 프로그램의 모임이다.
다양한 응용에서 필요로 하는 데이터베이스를 정의, 생성, 조작, 공유할 수 있도록 편리한 기능을 제공하는 범용 소프트웨어 시스템이다.



데이터베이스 시스템

데이터베이스와 그것을 관리하는 소프트웨어인 데이터베이스 관리 시스템, 이 모두를 칭하는 용어이다.



Q.데이터베이스 벤더(DB vender)에는 어떤 회사들이 있으며 그들이 제공하는 데이터베이스 관리 시스템으로는 어떤 것들이 있습니까?
Oracle사의 Oracle은 비즈니스 영역에서 가장 많이 사용되고 있으며 시장 점유율에서 최고입니다.
IBM사의 DB2는 관공서, 국방, 의약 영역에서 주로 많이 사용하고 있습니다. Oracle사의 MySQL은 중소형 비즈니스 영역에서 주로 사용되며
공개 DBMS입니다. 그리고 MS사의 MS SQL Server는 Windows 플랫폼에서 주로 사용되는 DBMS입니다. 마지막으로 PostgreSQL은 유럽 제품으로
공개용 버전이 있으며 중소형 비즈니스 영역에서 사용되고 있습니다.

데이터베이스 시스템의 개요
데이터베이스 시스템(Database System)은 데이터베이스와 이것을 관리하는 소프트웨어인 데이터베이스 관리 시스템과 응용 프로그램, 이 모두를 칭하는 용어이다.
데이터베이스(Database)는 관련 있는 데이터의 모임이다.
데이터베이스 관리 시스템(Database management system; DBMS)은 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지이다.

데이터베이스 시스템의 예
데이터베이스는 데이터 레코드, 데이터 항목, 엔티티, 관계를 정리한다.
DBMS에서 수행하는 데이터베이스 조작 기능은 질의(Query)와 갱신(Update)이다.

데이터베이스 시스템의 특징
파일 시스템의 단점은 데이터의 중복성, 데이터의 불일치, 프로그램과 데이터 간의 종속성, 제한적 정보 제공, 보안 문제가 있다.
데이터베이스 시스템의 특징은 데이터베이스 시스템의 자기기술성(Self-describing), 프로그램과 데이터의 분리 및 데이터 추상화, 데이터에 대한 다양한 뷰(View) 제공, 데이터의 공유와 다수 사용자 트랜잭션 처리 등의 특징을 가지고 있다.

상용 데이터베이스 관리 시스템 개요
Oracle사의 Oracle과 MySQL, MariaDB Foundation의 MariaDB, IBM사의 INFORMIX와 DB2, Microsoft 사의 MS SQL Server, PostgreSQL, 알티베이스의 ALTIBASE HDB, 티맥스 소프트의 티베로가 대표적인 데이터베이스 제품이다.


------------------------------------------




2차시 데이터베이스 사용자



데이터베이스 관리자(DBA)

데이터베이스 시스템의 전반적인 관리를 책임지는 사람으로 데이터베이스의 생성, 갱신, 관리, 질의를 처리하며 데이터베이스 설계자의 역할까지도 자주 수행한다.



제어된 중복성(Controlled redundancy)

질의 처리 시 2개 이상의 파일에서 데이터를 취합하여 처리하는 대신 하나의 파일에 중복된 데이터를 저장함으로써 처리 시간과 비용을 절감할 수 있으며 데이터의 불일치가 발생하지 않도록 DBMS가 제어한다.



접근통제/접근제어(Access Control)

사용자 또는 사용자그룹은 패스워드로 보호되는 계정을 부여 받아 데이터베이스를 접근할 때 사용한다. DBMS는 데이터가 접근되기 전에 지정된 접근 통제를 시행함으로써 권한이 없는 사용자의 접근을 방지한다.



Q.DBMS를 사용하는 이유가 무엇일까요?
파일시스템을 사용하는 것에 비해 중복성 제거, 접근 제어, 백업과 회복, 프로그램과 데이터의 독립성 보장, 데이터의 공유, 데이터 처리와 관리의 집중화에 의한 경비 절감 효과 등의 다양한 이점들을 얻을 수 있습니다.



데이터베이스 사용자 분류
데이터베이스 관리자(DBA)는 데이터베이스 시스템의 관리를 책임지는 사람이다.
데이터베이스 설계자는 데이터베이스의 설계를 책임지는 사람이다.
최종사용자(캐주얼, 초보, 전문 사용자)는 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람이다.
시스템 분석가 및 응용 프로그래머는 초보 사용자를 위하여 잘 정의된 기능의 응용을 설계하고 구현하는 사람이다.

DBMS의 장점
DBMS의 장점으로는 중복성의 제어, 접근 통제, 효율적 질의처리를 위한 저장 구조 제공, 백업과 회복 기능 제공, 인터페이스 제공, 무결성 제약조건의 시행 등이 있다.

데이터베이스의 발전 과정
계층 모델과 네트워크 모델 등이 60년대 중반부터 80년대까지 주류를 이루었다.
관계 데이터베이스는 70년대 소개 이후 IBM과 세계 각 대학에서 연구되고 검증되어 왔으며, 80년대에 들어서 상용 DBMS가 등장하였다.
객체지향 데이터베이스는 80년대 객체지향 프로그래밍 언어의 출현과 복합구조 객체를 저장하고 공유할 필요로 인해 객체지향 데이터베이스(object-oriented database; OODB)가 개발되었다.
월드 와이드 웹이 등장으로 웹 상에서 데이터의 교환을 허용하기 위해 웹 환경에서의 데이터베이스의 다양한 기술이 개발되었다.
그 외에도 고에너지 물리학 또는 인간 유전자 지도, x-레이나 MRI 와 같은 의학적 이미지, 비디오 클립의 저장과 검색 응용, 대량의 데이터를 분석하는 데이터 마이닝 등 다양한 응용을 위한 데이터베이스 능력이 확장되고 있다.


------------------------------------------




3차시 데이터베이스 관리 시스템



데이터 모델

현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형이다.



데이터 스키마와 데이터 인스턴스

데이터베이스에 대한 기술(메타데이터), 데이터베이스 설계 과정에서 명시하며 자주 변경되지 않는다. 어떤 특정 시점에 데이터베이스에 들어 있는 데이터의 집합이다.



데이터 정의 언어와 데이터 조작 언어

개념 스키마와 내부 스키마를 정의하는 언어이다. 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어, 보통 질의어(Query language)라고 불린다.



Q.데이터베이스에서 관리하는 데이터의 구조는 어떻게 표현될까요?
보통 개념적 데이터 모델 방식에 의해 표현됩니다.
엔티티, 속성, 관계의 형태로 표현되고, 여기에 추가적으로 데이터베이스 연산과 무결성 제약조건 등이 추가 됩니다.
이렇게 표현된 데이터 구조를 데이터 스키마라고 합니다.



데이터베이스 관리 시스템의 개념
클라이언트는 워크스테이션 / 개인용 컴퓨터에서 동작한다. 응용 프로그램 실행, 사용자 인터페이스를 제공한다.
서버는 데이터 저장, 접근, 탐색 등을 수행한다.


데이터 스키마와 인스턴스의 개념
데이터 모델은 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형이다.
스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한다.
인스턴스는 어떤 특정 시점에 데이터베이스에 들어 있는 데이터이다. 데이터베이스에 갱신 연산이 수행될 때마다 새로운 다른 데이터베이스 상태를 가진다.


3-단계 스키마 아키텍처와 데이터 독립성
3-단계 스키마 아키텍처는 내부 스키마, 개념 스키마, 외부 스키마로 구분된다.
데이터 독립성은 논리적 데이터 독립성, 물리적 데이터 독립성이 있다.


데이터베이스 언어와 인터페이스
데이터 정의 언어(DDL)는 데이터베이스 구조를 구축하거나 수정할 목적으로 사용하는 언어이다.
데이터 조작 언어(DML)는 사용자로 하여금 데이터를 검색, 삽입, 삭제, 수정할 수 있게 하는 조작 언어이다.
데이터 제어 언어(DCL)은 보안 및 권한 제어, 회복 등을 하기 위한 언어이다.
인터페이스 유형에는 메뉴 기반 인터페이스, 폼 기반 인터페이스, 그래픽 사용자 인터페이스, 자연어 인터페이스, 초보자를 위한 인터페이스, 데이터베이스 관리자(DBA)를 위한 인터페이스 등이 있다.


------------------------------------------




4차시 데이터베이스 관리 시스템 구성



질의 최적화 모듈

연산들을 재배치하고, 연산들의 순서를 바꾸고, 중복이 존재하면 제거하고, 수행 시 사용할 정확한 알고리즘과 인덱스를 선택하는 기능을 수행하는 DBMS 모듈이다.



클라이언트-서버 아키텍처

서버와 클라이언트로 시스템을 구성하는 아키텍처이다. 데이터베이스 서버는 클라이언트에서 요구하는 질의의 처리와 트랜잭션 서비스를 제공한다.
데이터베이스 클라이언트는 자체적으로 데이터베이스 응용 프로그램을 수행하고, 서버에 접속하여 데이터베이스 관련 작업을 할 수 있도록 사용자 인터페이스를 제공한다.



관계 데이터베이스 관리 시스템(RDBMS)

관계 모델을 지원하는 DBMS이다. 데이터베이스를 테이블들의 모임으로 구성되어 있으며 고급 질의 언어를 제공하고 제한된 형태의 사용자 뷰를 지원한다.



Q.초기 RDBMS에는 어떤 문제점이 있었고, 어떤 방식으로 해결했나요?
데이터 레코드에 접근하기 위해 물리적 저장 공간 포인터나 레코드 위치 정보를 사용하지 않았기 때문에 상당히 속도가 느린 문제점이 있었습니다.
새로운 저장 공간 매체 기술, 인덱스 기술, 더 나은 질의 처리 기술과 질의 최적화 방법이 개발되면서 속도 성능이 향상되어, 전통적인 데이터베이스 응용을 위한 데이터베이스 시스템의 주된 형태가 되었습니다.



데이터베이스 관리 시스템의 구성
DBMS 구성 모듈은 다음과 같다.데이터 정의 언어 컴파일러(DDL Compiler)✔
질의 컴파일러(Query Compiler)✔
질의 최적화기(Query Optimizer)✔
프리컴파일러(Precompiler)✔
데이터 조작 언어 컴파일러(DML Compiler)✔
호스트 언어 컴파일러(Host Language Compiler)✔
런타임 데이터베이스 처리기(Runtime Database Processor)✔
저장 데이터 관리자(Stored Data Manager)✔



서버-클라이언트 아키텍쳐
중앙집중식 아키텍처는 하나의 시스템에 DBMS 소프트웨어, 하드웨어, 응용 프로그램, 사용자 인터페이스 소프트웨어 등 데이터베이스 관련 모든 것들을 모아 놓은 구조
2-tier 서버 클라이언트 아키텍처는 기본적으로 클라이언트-서버 아키텍처는 특정 기능을 갖는 특별한 서버를 지정한다.
3- tier 서버 클라이언트 아키텍처는 클라이언트와 데이터베이스 서버 사이에 응용 서버 또는 웹 서버를 추가한다.



데이터베이스 관리 시스템의 분류
주로 지원하는 데이터 모델에 따라 관계 모델을 지원하는 RDBMS, 객체지향 모델을 지원하는 OODBMS, 객체-관계 모델을 지원하는 ORDBMS로 분류한다.


반응형