일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 1002
- pyenv
- 밑바닥부터 시작하는 딥러닝
- 그리디 알고리즘
- 백트래킹
- 1101
- N-Queen
- 재귀
- BOJ
- Python
- 실버
- REST
- 9020
- 손실함수
- 가상환경
- 오블완
- 경사하강법
- 4948
- 파이싼
- 15649
- streamlit
- REST API
- 백준
- end to end
- n과 m
- 티스토리챌린지
- 파이썬
- 기계학습
- 신경망 학습
- 개발환경
- Today
- Total
파이톨치
[컴퓨터학의 이해] 중간고사 대비 정리 본문
인공지능과 함께하는 우리 사회
1. 메타버스(Metaverse)
- 'Meta'(초월, 가상)와 'Universe'(우주, 현실 세계)의 합성어
- 가상현실(VR)과 증강현실(AR) 기술이 합쳐진 가상 세계
- 가상과 현실이 상호작용하며 사회, 경제, 문화 활동이 이뤄지는 세상
- 1992년 닐 스티븐슨의 소설 '스노 크래시'에서 개념과 용어 처음 사용
2. 메타버스 개념 (ASF의 분류)
- 증강현실(AR): 현실 공간에 가상 정보를 표시해 상호작용하는 환경
- 일상기록(Lifelogging): 자신의 인생을 기록하는 것
- 거울 세계(Mirror Worlds): 실제 세계를 디지털 정보로 사실적으로 반영한 세계
- 가상 세계(Virtual Worlds): 현실 세계와 유사한 활동을 할 수 있는 디지털 세계
3. 메타버스 시대
- 교육 분야: 아바타를 활용한 실시간 수업, 몰입도 향상
- 산업계 전망: 현실과 가상 세계의 융합이 빠르게 진행될 것으로 예상
- 게임, 컨퍼런스, 교육, 엔터테인먼트, 음악, 콘텐츠, 산업 현장 등 다양한 분야에서 활용
4. 가상현실(VR), 증강현실(AR), 혼합현실(MR)
- 가상현실(VR): 인공적인 환경이나 상황을 체험할 수 있는 기술
- 증강현실(AR): 현실 세계에 가상 정보를 합성하는 기술, 혼합현실(MR)이라고도 함
- 혼합현실(MR): VR과 AR의 단점을 보완해 더욱 진화된 가상 세계를 구현하는 기술
5. 확장현실(XR)
- VR, AR, MR 기술을 기반으로 가상과 현실을 융합해 몰입감을 제공하는 기술
- HMD와 같은 기기를 활용해 3차원 공간에서의 상호작용과 경험을 가능하게 함
- 제조, 헬스케어, 교육, 소매 등 다양한 산업에 적용
- 메타버스의 기술적 요소로 VR, AR, MR이 핵심 요소 기술로 사용됨
앨런 튜링(Alan Turing), 컴퓨터의 개념을 구상
인공지능은 1956년 미국 다트머스 대학의 학술대회에서 처음 언급
1. AI GPU
- 그래픽 처리장치는 고속의 병렬처리로 대량의 행렬과 벡터를 다루는 데 뛰어난 성능 발휘
- 12개 GPU가 2,000개의 CPU와 비슷한 계산 능력
- TPU(Tensor Processing Unit): 구글이 2016년에 GPU보다 뛰어난 연산 처리장치로 개발 (텐서: 벡터·행렬을 의미)
2. 음성인식 STT(Speech-to-Text)**
- 사람이 말하는 자연어를 분석하여 텍스트로 변환
- 구글 문서의 음성 텍스트 변환(SPEECH TO TEXT) 기능 제공
3. TTS(Text-to-Speech) 기술**
- 인공지능 기술을 활용해 텍스트를 음성으로 변환
- 지하철이나 아파트 공공시설 내에 안내방송을 컴퓨터가 직접 가능
- 국내 오디오북 서비스 업체는 AI가 만든 음성으로 오디오북을 읽어주는 서비스 제공
4. 대화식 음성 응답(IVR) 기술**
- 음성과 키패드 DTMF 톤 입력을 통해 컴퓨터와 인간의 상호작용을 가능하게 함
- 전화 연결 시 안내 메시지와 함께 정보 입력을 안내
- ARS는 단순 안내 또는 내선교환 기능만 제공
5. 자율주행 자동차(Self-Driving Car)**
- 라이다(LiDAR) 레이저 센서로 3차원 주변 정보와 물체 거리 인식
- 카메라, 센서로 수집된 데이터를 인공지능이 분석하여 주행 제어
- 비디오 카메라, 방향표시기, 인공지능 소프트웨어, GPS 등을 기반으로 작동
6. 자율주행 수준**
- 0~2: 주행 책임 운전자, 부분자동화
- 3: 시스템이 운전 제어, 조건부 자동화
- 4: 높은 수준의 자동화
- 5: 완전 자율주행 가능
7. 전기차(EV), 하이브리드차, 미래 자동차 산업**
- 2030년 전기·수소차, 자율주행차, 이동서비스가 주도할 것으로 전망
1. 인터넷
- 인터넷 프로토콜을 통한 네트워크
- 전 세계 컴퓨터들이 통일된 프로토콜로 통신하는 세계 최대 통신망
- 연결된 호스트 컴퓨터 수는 매년 400% 이상 급증
2. WWW (월드 와이드 웹)
- 팀 버너스 리가 1990년에 개발
- 구조: 웹 서버에 정보와 프로그램을 저장, 클라이언트의 요청에 따라 제공
- 웹 브라우저: 클라이언트에서 정보를 검색하는 도구
3. 스마트폰 이전의 정보기술
- 1990년대 말, 인터넷 기업의 시작 (구글, 아마존, 이베이, 네이버, 다음, 텐센트 등)
- 닷컴버블의 붕괴
- 인터넷 산업 성장 속도가 예상보다 느림
- 닷컴 회사의 수익 창출 어려움
- 많은 닷컴 회사 파산, 투자자 피해 발생
4. 인터넷과 웹 기반 IT 붐
- 1999년 미국, 독일, 한국 등 세계 여러 국가에서 정보기술(IT) 붐 시작
1. 스마트폰 이후의 스마트 혁명
- 닷컴버블 이후에도 구글, 네이버 등 인터넷 정보검색 전문기업은 크게 성장
- 2007년 이후 스마트폰 혁명 시작, 출시된 지 1년 만에 대중화
- 2010년 이후 새로운 IT 붐 도래
- 소셜네트워크서비스(SNS)
- 메신저 서비스
- 클라우드 컴퓨팅
- 공유 경제 비즈니스 등이 유행
2. 아이폰의 혁신
- 2007년 6월 애플의 아이폰 출시
- 사용자의 눈높이와 시대의 요구를 반영한 정보기술 분야의 혁신
3. 스마트 혁명과 생활의 변화
- 포노 사피엔스(Phono sapiens): 스마트폰을 사용하는 인간을 지칭하는 말
- 스마트폰은 예전의 슈퍼컴퓨터 속도로 작업을 처리하고, 인터넷에 연결되며, 크기도 작음
- 스마트폰은 이미 없어서는 안 될 IT 기기의 중심으로 자리잡음
1. 미디어의 디지털화와 OTT 서비스
- OTT(Over The Top): 인터넷을 통해 드라마, 영화 등의 미디어 콘텐츠를 제공하는 서비스
- PC, 스마트폰, 태블릿 PC, 콘솔 게임기 등 다양한 플랫폼을 지원하며 실시간 방송과 VOD를 포함
2. 추천 서비스
- OTT 분야의 추천 서비스는 이용자의 취향, 성향, 시청 시간대, 시청 기기 등의 정보를 기반으로 함
- 머신러닝과 딥러닝 등의 인공지능을 활용하여 사용자가 관심을 가질 만한 콘텐츠를 추천
3. 넷플릭스
- 인터넷(net)과 영화(flicks)의 합성어
- 2020년 하반기 전 세계 유료 가입자 수 2억 명 이상
- 국산 콘텐츠의 글로벌 흥행과 성공, 국산 동영상 스트리밍 서비스 플랫폼의 성장이 과제로 대두
4. UCC(User Created Contents)
- 일반 사용자들이 직접 만들어 인터넷에 유통하는 콘텐츠
- 다중 채널 네트워크(MCN) 산업이 가파른 성장세
- 대부분 이미지, 음악 등의 멀티미디어 요소가 결합된 동영상 위주
5. 유튜브
- 국내에서도 글로벌 1위 UCC 플랫폼인 유튜브가 독점
6. 소셜네트워크서비스(SNS)
- 인터넷 공간에서 불특정 타인과 인맥을 구축하는 서비스
- 유명인이나 불특정인과 인맥을 맺을 수 있으며, 자기의 생각을 빠르고 쉽게 공유할 수 있는 장점
- 2023년 기준 전 세계적으로 40억 명 이상의 이용자 예측
7. 4차 산업혁명 시대
- 클라우스 슈밥에 의해 처음 언급, 2016년 1월 세계경제포럼에서 제시
- '모든 것이 연결된, 지능적인 사회로의 진화'로 요약
- 제3차 산업혁명의 컴퓨터혁명 혹은 디지털혁명을 기반으로 유비쿼터스 모바일 인터넷, 센서, 인공지능과 기계학습이 핵심
8. 4차 산업혁명 요소 기술
- 사물인터넷(IoT)이 핵심 인프라이며, 빅데이터와 인공지능이 핵심 기술
- 사물인터넷을 통해 생산되는 대량의 데이터(빅데이터)를 활용하여 여러 분야의 생산성과 효율성 향상 기대
- 2025년까지 1조 개의 센서가 인터넷에 연결될 것으로 예측
1. 빅데이터(Big Data)
- 대규모 데이터로 과거 아날로그 환경에서 생성되던 데이터와 차이점 존재
- 규모가 방대하고, 생성 주기가 짧으며, 수치 데이터뿐만 아니라 문자와 영상 데이터도 포함
2. 빅데이터 기술
- 다양한 종류의 빅데이터에 대한 생성, 저장, 수집
- 수집한 빅데이터를 분석 및 처리하여 가치를 추출
- 결과를 표현하여 의사결정에 사용
3. 빅데이터 활용 사례
- 서울시 심야버스: 30억 건의 콜택시 요청 기록 등의 통화량 빅데이터를 분석하여 심야버스 노선 선정
- 구글, 아마존, 페이스북, 애플 등은 핵심 서비스를 무료로 제공하고 방대한 양의 데이터를 수집하여 회사의 큰 자산으로 활용
컴퓨터의 정의 간단한 정의 -전자적으로 계산을 수행하는 장치 컴퓨터의 4가지 기능 -처리(process), 저장(store), 입력(input), 출력(output) 정의 -원하는 결과를 얻기 위하여 -입력기능을 이용하여 데이터를 0과 1의 디지털로 변환 -처리, 저장 기능을 이용하여 데이터를 처리 -변환된 정보를 출력기능을 이용하여 적절한 출력장치로 출력할 수 있는 전자적 장치 컴퓨터(computer)는 '전자적으로 계산을 수행하는 장치
컴퓨터의 구성요소 하드웨어 -데이터의 입력, 처리, 출력을 제어하는 데 사용되는 물리적인 기계 장치 -5가지 구성요소 중앙처리장치(CPU) -연산을 수행하는 연산장치(ALU: Arithmetic Logic Unit) -연산을 제어하는 제어장치 (control unit)로 구성 주기억장치, 보조기억장치 입력장치, 출력장치 소프트웨어 -컴퓨터가 수행할 작업을 지시하는 전자적 명령어들의 집합 (프로그램) -컴퓨터가 수행해야 할 일을 알려주는 자료 주로 파일로 처리 -보조기억장치에서 논리적인 한 단위로 취급되는 연관된 자료의 모음을 파일 컴퓨터는 물리적인 하드웨어와 컴퓨터의 행동을 지시하는 프로그램인 소프트웨어로 구성
중앙처리장치 CPU(Central Processing Unit) -마이크로프로세서(Microprocessor) 줄여서 프로세서(Processor)라고도 부름 -제어장치(control unit) 자료와 명령어의 중앙처리장치로의 입출력을 제어 -연산장치(arithmetic logic unit)로 구성 산술연산과 논리연산을 수행하는 장치 -주요 생산 회사 인텔(Intel), AMD(Advanced Micro Devices) 입력된 자료를 적절한 정보로 변환하기 위하여 소프트웨어로부터 받은 명령어를 실행하는 장치
메인 보드 주기판 또는 모기판 -중앙처리장치를 연결하는 소켓 -주기억장치를 설치하는 메모리 슬롯 -다른 하드웨어 장치에 연결시키는 확장 슬롯 그래픽 카드와 사운드 카드, 네트워크 카드 등의, ROM(Read Only Memory) 등 -컴퓨터의 기본 성능을 규정 CPU 종류, 기억장치 최대 용량 확장 슬롯의 수량 -시스템의 안정성도 결정할 수 있는 중요한 부품 중앙처리장치는 마더보드(motherboard)라고도 부르는 컴퓨터 내부의 메인보드(mainboard)에 장착
그래픽 처리 장치(GPU: Graphics Processing Unit) 1999년 엔비디아 사, GPU라 지칭 -GeForce 256 그래픽 프로세서 -CPU 내부에서 처리하던 그래픽 처리를 빠른 시간에 고수준 해상도를 처리하는 전담 그래 픽 카드 GPU는 고속의 병렬처리로 대량의 행렬 과 벡터를 다루는데 뛰어난 성능을 발휘 -구조상 병렬 컴퓨팅 계산에 적합한 구조 -실수와 벡터 연산에서 CPU보다 약 10배 이 상 빠름 -3D 그래픽 이외의 수리 연산 중심의 컴퓨팅 분야에 사용하기 시작 이를 범용 GPU라 하여 GPGPU(General Purpose Graphic Processing Unit)라 칭함 GPU 활용 -디스플레이가 화려한 게임 분야 -이미지 처리 및 분석 -컴퓨팅 가속이 필요한 비트코인 채굴 -대량의 행렬과 벡터 연산이 요구 빅데이터 처리 인공지능의 심층신경망(딥러닝) 분야 등에 널리 활용 GPU란 용어는 1999년 엔비디아(Nvidia) 사에서 처음 사용한 용어 11 모바일 AP -모바일 기기의 두뇌 역할을 담당하는 반도체 칩(chip) -연산을 위한 CPU의 주된 기능 외 여러 가지 시스템 장치와 인터페이스를 제어 기능 -메모리와 표시장치를 위한 그래픽처리 (GPU), 카메라, 저장장치, 무선통신 -디지털 신호 처리(DSP: Digital Signal Process), 이미지 처리 등 -엄지 손톱보다 작음 여러 기능의 반도체를 한 개의 칩에 모아 만든 시스템온칩 (SoC: System on Chip) 대표적인 AP -퀄컴(Qualcomm)의 MSM 시리즈 '퀄컴 스냅 드래곤(Qualcomm Snapdragon)'
주기억장치 임의접근 메모리 RAM(Random Access Memory) -메모리의 임의의 위치에 데이터를 읽거나 쓸 수 있음을 의미 -휘발성 메모리 -듀얼 인라인 메모리 모듈(DIMM: Dual In- line Memory Module) 여러 개의 메모리 칩을 회로 기판 위에 탑재 한 메모리 모듈 -마더보드의 DIMM 소켓이라 부르는 장치에 장착 CPU에서 처리 중인 프로그램과 데이터를 임시로 저장하기 위한 장치
보조기억장치 저장장치 -주기억장치에 비하여 속도는 느리지만, 가격이 저렴하여 더 넓은 공간을 이용 가능 종류 (https://www.itworld.co.kr/news/218574, SSD - NVMe/M.2/SATA 비교) -USB 메모리 -하드디스크(HDD: Hard Disk Driver) USB 메모리에 비하여 대용량의 자료저장이 가능 -SSD(Solid State Disk) 읽고 쓰는 속도가 빠르며, 전력 사용량이 적고 충격에 강하며 발열과 소음도 적음 SSD에 운영체제와 자주 사용하는 프로그램을 설치 HDD에는 영화나 음악 같은 대용량의 자료를 저장하여 함께 사용 -외장형 하드 디스크 드라이브(external hard disk drive) 프로그램이나 데이터를 저장하기 위한 저장 공간으로 간단히 저장장치(storage)라고도 부름
ITStory: 오거스타 에이다 어거스타 에이다(Augusta Ada, 1815∼1852) -수학에 천재적 재능 -배비지가 고안한 기계를 이해 1833년에 배비지가 고안한 '분석 엔진 (Analytical Engine)'에 계산과정을 기술하는 프로그램을 만듬 -오늘날 일반적으로 사용하는 컴퓨터의 시조가 되는 데 공헌 -'배비지의 해석기관에 대한 분석 (Observations on Mr. Babbage's Analytical Engine)'을 출간 1842년 오늘날 컴퓨터의 원형이 된 '분석 엔진'에 관 한 책 현대 컴퓨터 프로그래밍 역사의 기원 -세계 최초의 프로그래머 호칭 프로그래밍 언어 에이다 -새로 개발한 프로그래밍 언어를 그녀의 이름 을 따서 "ADA"라고 명명 영국의 낭만파 시인 바이런의 딸인 오거스타 에이다(Augusta Ada)는 최초 컴퓨터 프로그래머
튜링머신과 프로그램 내장방식
1936년, 영국의 수학자 튜링, 튜링 기계 이론 발표 -튜링머신 이론을 발표 컴퓨터의 실행과 저장에 관한 추상적인 모델 -런던 수학 회보, '계산 가능한 수에 관한 연구: 결정 문제의 적용과 관련하여'라는 연구 논문 1942년, 폰노이만, 헝가리인 -"프로그램 내장 방식" 컴퓨터의 개념을 제시 에드삭 -EDSAC Electronic Delay Storage Automatic Calculator -'프로그램 내장 방식'을 최초로 적용한 컴퓨터 1949년에는 영국의 캠브리지 대학에서 개발 1930~40년대에 현재 컴퓨터의 이론적 바탕이 되는 계산이론이 발전
폰 노이만과 프로그램 내장 방식 에니악의 문제 -새로운 일을 할 때마다 사 람이 수천 개의 스위치를 다시 설정 프로그램 내장 방식으로 해결 -폰 노이만 방식 -현대식 논리구조를 확립 프로그램과 자료를 모두 기억장치에 집어넣고 프로그램과 자료를 차례로 불러 해독한 후 처리 -이를 적용한 최초 컴퓨터 에드박
네, 쉽고 자세하게 설명드리겠습니다.
1. 진법 변환
- 8진수와 16진수는 2진수를 간단하게 표현하기 위해 사용됩니다.
- 8진수는 2진수 3자리를 하나의 8진수 자리로 표현하고, 16진수는 2진수 4자리를 하나의 16진수 자리로 표현합니다.
- 예를 들어, "rwx rwx rwx"는 2진수로 "111 110 101"이며, 이를 8진수로 변환하면 "765"가 되고, 10진수로는 "7 6 5"가 됩니다.
- 16진수 "A2"는 2진수로 "1010 0010"입니다.
2. 워드
- 워드는 컴퓨터에서 한 번에 처리할 수 있는 데이터의 크기를 나타내는 단위입니다.
- 과거에는 16비트가 워드 크기로 사용되었지만, 현재는 운영체제에 따라 32비트 또는 64비트를 워드 크기로 사용합니다.
3. 보수
- 1의 보수는 이진수의 모든 비트를 반전시켜 얻습니다. 예를 들어, "0100"의 1의 보수는 "1011"입니다.
- 2의 보수는 1의 보수에 1을 더해 얻습니다. 예를 들어, "0100"의 2의 보수는 "1011" + 1 = "1100"입니다.
- 2의 보수는 음수를 표현할 때 사용되며, 가장 왼쪽 비트는 부호 비트(Most Significant Bit)로 사용됩니다.
4. 부동소수점과 정규화
- 부동소수점은 실수를 표현하는 방식입니다. 정규화는 부동소수점 수를 표준 형식으로 나타내는 과정입니다.
- 32비트 단정도와 64비트 배정도는 부동소수점 수의 정밀도를 나타냅니다. 배정도는 단정도보다 약 2배 이상의 정밀도를 가집니다.
5. 문자와 코드표
- 아스키코드는 8비트를 사용하여 영문 알파벳, 숫자, 특수 문자 등을 표현합니다.
- 유니코드는 16비트를 사용하며, 전 세계의 다양한 문자를 표현할 수 있습니다.
- 예를 들어, 아스키코드에서 "0"은 "0x30"으로, NULL 문자("\\0")는 "0x00"으로 표현됩니다.
6. 논리 표현과 연산
- 불(Boolean) 자료형은 0 또는 1의 값을 가집니다.
- 논리 연산자로는 AND(^), OR(or), NOT(~) 등이 있습니다.
7. 컴퓨터에서의 수 표현
- 컴퓨터에서 수를 표현할 때는 하드웨어 디바이스에 따라 달라집니다.
- n비트로 표현할 수 있는 수의 범위는 -2^(n-1)부터 2^(n-1) - 1까지입니다.
- 2의 보수법을 사용하면 중복되지 않는 수 표현이 가능합니다.
1. 명령어와 프로세스
- CPU에서 실행되는 것은 프로세스이며, 프로그램은 명령어(Instruction)의 집합입니다.
- 명령어는 operation code(연산 코드)와 operand(피연산자)로 구성됩니다.
- 직접 주소는 명령어에 실제 메모리 주소가 포함된 것이고, 상대적인 주소는 현재 명령어 위치를 기준으로 상대적인 위치를 나타냅니다.
2. 프로그램 실행 과정
- 고급(원시) 언어로 작성된 프로그램은 어셈블리어로 변환되고, 다시 기계어로 변환된 후 실행됩니다.
3. 캐시 메모리
- 캐시 메모리는 CPU와 주기억장치 사이에 위치하며, 자주 사용되는 데이터나 명령어를 빠르게 접근할 수 있도록 합니다.
- 멀티코어 프로세서에는 각 코어마다 캐시 메모리가 있을 수 있습니다.
- 시간 지역성: 최근에 사용된 데이터나 명령어가 다시 사용될 확률이 높음
- 공간 지역성: 현재 사용 중인 데이터나 명령어의 주변 메모리 영역이 사용될 확률이 높음
4. 메모리 계층 구조
- 메모리 계층 구조는 레지스터, 캐시, 주기억장치, 보조기억장치 등으로 이루어집니다.
- 계층이 위로 갈수록 속도가 빠르고 용량이 작으며, 가격이 비쌉니다.
5. 제어장치
- 제어장치는 해독기와 제어기로 구성됩니다.
- 해독기는 명령어를 해석하여 operation code와 operand로 분리합니다.
- 제어기는 해독된 명령어를 실행하기 위한 제어 신호를 생성합니다.
6. 프로그램 카운터(PC)
- PC는 다음에 실행할 명령어의 메모리 주소를 저장하는 레지스터입니다.
7. 기계 사이클(Machine Cycle)
- 기계 사이클은 명령어를 실행하는 과정으로, fetch(인출), decode(해독), execute(실행), store(저장)의 4단계로 이루어집니다.
8. 폰 노이만 구조
- 폰 노이만 구조는 프로그램을 메모리에 저장하고 순차적으로 실행하는 방식을 사용하여 컴퓨터 속도를 향상시켰습니다.
9. 버스 폭과 병목 현상
- 워드의 크기는 레지스터의 크기와 같습니다. 64비트 체계에서는 레지스터 크기가 64비트입니다.
- 레지스터가 64비트인데 자료 버스가 32비트라면, 데이터 전송 시 병목 현상이 발생할 수 있습니다.
10. 운영체제(OS)
- 운영체제는 프로세스 실행 환경을 제공하는 시스템 소프트웨어로, 일종의 플랫폼입니다.
- 운영체제는 사용자와 하드웨어 사이에서 중개자 역할을 수행합니다.
- 사용자 -> 응용 프로그램 -> 운영체제 -> 하드웨어의 구조로 이루어집니다.
- 셸(shell)은 사용자가 입력한 명령을 인식하고 처리하는 소프트웨어로, GUI나 CLI 형태로 제공됩니다.
1. M1 칩
- M1 칩은 애플에서 자체 설계한 ARM 기반 프로세서로, 기존 인텔 프로세서를 대체하여 맥북과 아이맥에 사용되고 있습니다.
2. 운영체제(OS)와 시스템 구조
- 운영체제는 사용자와 하드웨어 사이에서 중개자 역할을 수행하는 시스템 소프트웨어입니다.
- 사용자 -> 응용 프로그램 -> 운영체제 -> 하드웨어의 구조로 이루어집니다.
- 커널은 운영체제의 핵심 부분으로, 하드웨어를 직접 제어하고 관리합니다.
- 디바이스 드라이버는 운영체제와 하드웨어 사이의 통신을 담당하는 소프트웨어입니다.
3. 셸(Shell)의 역할
- 셸은 사용자와 운영체제 커널 사이에서 인터페이스 역할을 수행합니다.
- 사용자가 입력한 명령어를 인식하고, 이를 운영체제가 이해할 수 있는 형태로 변환하여 커널에 전달합니다.
- 셸의 예로는 커맨드 라인 인터페이스(CLI)와 그래픽 사용자 인터페이스(GUI)가 있습니다.
4. 프로세스의 3가지 상태
- 레디(Ready): 프로세스가 CPU를 할당받을 준비가 된 상태
- 대기(Waiting): 프로세스가 특정 이벤트(예: I/O 작업 완료)를 기다리는 상태
- 실행(Running): 프로세스가 CPU를 할당받아 실행 중인 상태
5. 시분할 시스템과 멀티태스킹
- 시분할 시스템은 여러 사용자가 동시에 컴퓨터를 사용할 수 있도록 CPU 시간을 분할하여 할당하는 방식입니다.
- 이를 통해 멀티태스킹, 즉 여러 개의 작업을 동시에 수행할 수 있게 됩니다.
6. 운영체제의 분류
- 배치 처리 시스템: 작업을 일괄 처리하는 방식
- 시분할 시스템: CPU 시간을 분할하여 여러 사용자가 동시에 사용
- 다중 프로그래밍 시스템: 여러 개의 프로그램을 메모리에 로드하여 동시에 실행
- 실시간 처리 시스템: 정해진 시간 내에 작업을 처리하고 결과를 보장
- 분산 처리 시스템: 여러 대의 컴퓨터가 네트워크로 연결되어 작업을 분산 처리
7. 분산 처리 시스템
- 여러 대의 컴퓨터가 네트워크로 연결되어 하나의 시스템처럼 동작합니다.
- 작업을 분산하여 수행함으로써 성능을 향상시킬 수 있습니다.
- 데이터의 복사본을 여러 곳에 유지하여 쉽게 확장할 수 있습니다.
- 물리적 연결뿐만 아니라 소프트웨어 시스템과 논리적 설계가 필요합니다.
컴퓨터의 구조
### 저장 프로그램
1. 프로그램 내장 방식: 메모리에 자료와 프로그램 저장, 노이만이 고안, CPU는 저장된 명령어 순차적 수행
2. 명령어(instruction): 연산 부분(기능, 4비트)과 피연산 부분(자료, 12비트)로 구성, 예시 - ADD, LDA, STA, HLT
3. 기계어: 컴퓨터에게 작업 지시하는 언어, 0과 1로 이루어짐
4. 어셈블리어: 기계어를 사람이 쓸 수 있는 언어와 유사하게 만든 것, 연산자와 피연산자를 기호화
5. 고급언어: 사람이 이해하는 프로그래밍 언어, 가독성 높음, 컴파일러나 인터프리터에 의해 저급 언어로 번역되어 실행
### 기억 장치
1. 주소: 바이트 단위로 고유하게 식별, 1바이트마다 주소값이 1증가
2. 워드: 컴퓨터가 한 번에 작업할 수 있는 데이터 단위, 32 or 64 bit, 레지스터의 크기
3. 버스: 데이터 전송 역할을 하는 공통의 통로, 내부 버스(CPU내의 레지스터 연결, I/O), 외부 버스(장치 등 상호 연결), 데이터 버스(데이터 전송), 주소 버스(주소 전송), 컨트롤 버스(신호 전송)
4. RAM: 소멸성/휘발성 기억 장치, 읽고 쓰기 가능, DRAM(주기억장치로 주소 사용, 전기적 재충전 필요), SRAM(캐시 메모리에 주로 사용, 지워지지 않음)
5. ROM: 비소멸성/비휘발성 메모리, 메모리 접근 가능, BIOS(부팅 펌웨어, 하드웨어 점검, OS 실행, POST 실행)
6. 캐시 메모리: 레지스터보단 느리고 메인 메모리보단 빠름, L1, L2, L3 있음(L1이 더 작고 빠름), CPU 내에 있는 것도 있음, 지역성(시간 지역성, 공간 지역성) 활용해 효율적임
7. 버퍼: 속도 차이 나는 작업 처리를 위한 임시 저장 공간, 응답 기다리다 시간 허비 방지, RAM 일부를 버퍼 메모리로 사용
8. 보조 기억 장치: CPU 외부, HDD, SSD(HDD보다 읽고 쓰기 빠름, 전력 사용량 적고 충격에 강함), 순차접근, 직접접근, 그 외 외장하드, 플래시 메모리, USB
9. 메모리 계층 구조: 레지스터 -> SRAM -> DRAM -> SSD, HHD, 속도와 용량, 가격을 고려함
### 중앙처리 장치
1. CPU: ALU(연산), CU(해석과 제어), register, BUS
2. 레지스터 종류: 누산 레지스터(AC), 자료 레지스터(DR), PC(다음 명령어 주소) 등
3. 레지스터 동작: AC <- AC + DR, ALU가 CU의 신호를 받아 실행
4. 제어 장치(CU): 해독기와 제어기로 구성, ALU에 신호를 보냄, 인간의 뇌와 비슷한 역할
5. 명령어 처리 과정: RAM이 명령어와 자료를 CPU의 레지스터로 전송 -> 해석 -> 처리 -> 다시 RAM에 저장
6. 기계 주기: (fetch) PC에 있는 주소를 IR에 저장, PC += 1, (decode) 연산 부분과 피연산 부분으로 해독, 피연산 부분이 있는 명령어면 메모리 주소를 AR에 저장, (execute) CPU가 작업 지시, 다음 명령어로 반복, (store) 결과를 RAM 저장
### 마이크로프로세서
1. 자료버스 폭: CPU 내부 구성 요소 간에 자료를 전달하는 통로의 비트 수
2. 병목 현상: 레지스터와 자료버스 비트 수가 맞지 않을 때 생김
3. 클럭속도: 초당 진동의 반복 횟수를 재는 단위, 하나의 명령어를 특정 수의 클럭 사이클에서 실행
4. 병렬 처리: 한 번에 여러 개의 명령어를 동시에 실행시키는 처리 방법
5. 인텔: 무어의 법칙(18개월마다 2배가 됨, 한계 있음), 순수 성능보다는 기능이나 전력 효율 향상에 중점
6. CISC: 복합 명령어 집합, 다양한 명령어, 적은 수의 명령어로 구성 가능, 비싸고 전력소모 큼
7. RISC: 축소 명령어 집합, 상대적으로 레지스터가 많음(단점), 수행 속도 빠름, 구조 단순
운영체제와 활용
운영체제는 Operation System이라 부른다.
이는 User -> App -> OS -> Hardware의 구조에서 하드웨어와 유저 사이에 있는 플렛폼이다.
시스템 프로그램들의 집합이며, 컴퓨터 자원을 관리한다.
이를 통해, 컴퓨터 시스템의 자원을 편리하게 사용할 수 있는 환경을 제공한다.
시스템 자원들을 효율적으로 관리하여 시스템 성능을 최적화한다.
(운영체제 목적과 기능) CPU를 효율적으로 이용하기 위해, 여러 개의 프로그램을 동시에 로드하여 적절히 프로그램이 실행될 수 있도록한다.
(사용자 인터페이스 방식) 명령행 인터페이스 방식인 CLI 방식이 있다. 키보드 입력으로 받는다. 또한 GUI 방식이 있다.
운영체제 관리
(운영체제의 관리 대상) 기억 장치, 프로레스, 입출력장치, 파일이 있다.
(기억장치 관리 기능) 주기억장치의 공간 사용 가능하면, 어느 프로세스를 적재할지 결정함. 필요없다면 회수.
(기억장치 종류) 단일 프로그램 방식, 다중 프로그램 방식이 있다.
(프로세스 관리) 프로세스의 생성, 삭제, 중지, 계속, 동기화 등의 기능을 함.
(프로세스란) 주기억장치에 적재(patch)되어 있는 프로그램
(프로세스 상태) 준비, 대기, 실행 :: 프로세스 스케줄러에 의해 관리됨.
(장치와 파일 관리) 디바이스 드라이버, 보조기억장치에 저장되는 파일 관리
운영체제 분류
(일괄 처리 방식) 배치 프로세싱으로도 부른다. 모았다가 한 시점에 순차적으로 일관처리하는 방식.
(장점) 독점 처리하여 효율적으로 사용.
(단점) 사용 가능해도 유휴 시간을 갖게 됨. 제출과 완료 사이의 시간이 많이 걸려 결과 학인 불가.
(시분할 시스템) 하나의 시스템을 여려 명의 사용자가 단말기를 이용해 여러 작업 처리. 타임 슬라이스 방법으로 시분할 구현.
(장점) CPU의 유휴 시간을 줄인다.
(다중 프로그래밍 시스템) 2개 이상의 여러 프로그램을 주기억장치에 동시에 저장하고, 하나의 CPU로 실행.
돌아가며 순차적으로 빠르게 실행해서 여러개 동시 실행되는 것처럼 보인다. 기다리는 동안 다른 프로그램 실행되게 스케줄링 기법이 필요하다.
(특징) 여러 개의 프로세스가 하나의 운영체제에 의해 관리, 버스나 기억장치를 공유해서 작업 처리해 속도 빠름
(비대칭적 다중 처리 방식) 주 프로세서가 종 프로세서 작업 할당해 수행
(대칭적 다중 처리 방식) 모든 프로세스가 대등한 구조, 지역적 성격의 캐시. RAM 공유.
(단일 작업) 한 사용자가 한 번에 한가지 작업만 실행 시스템, MS-DOS
(그 외) 실시간 처리 시스템, 분산 처리 시스템
운영체제 종류
(MS-DOS) 쉘 기동, 명령 프롬프트 실행, 운영체제의 커널과 사용자 사이를 이어주는 역할, App - Shell - kernel
(윈도우) GUI 방식
(OS/2) IBM, MS 합작, 16비트 체계
(애플) 최초의 GUI, 시스템 1 사용, 애플 실리콘으로 전환
(리눅스) 오픈 소스, 우분투, TCP/IP 강력하게 지원
(유닉스) C언어로 작성, 높은 이식성
(커널) 운영체제의 핵심, CPU와 주기억장치 관리, 시스템 콜 처리
(쉘) 운영체제와 사용자 사이의 역할, CLI
컴퓨팅 사고력과 문제해결
(컴퓨팅 사고력) 관심 높아짐. 프로그래밍 구현 과정 사고에서 도출된 절차 및 역량 . 제4차 산업 혁명 시대에 필요함.
이를 통해 일반적인 문제에 적용 및 활용. 엔트리나 스크래치 사용함.
(자료 분석) 자료 의미 이해, 자료 특징 찾아 일반화, 패턴 찾아 동향 파악, 도식화 시각화, 표 테이블, 차트 글, 등등
(분할과 정복) 문제를 작은 부분으로 나누고, 나눠진 부분은 다시 해결 가능한 부분으로 잘게 나눈다. 훨씬 쉽게 해결한다. 이를 해결한 작은 문제를 combine 해서 통합한다. 이진검색 같은 것들이 있다.
(패턴 인식) 작게 분해된 문제들 사이의 유사성 또는 패턴을 탐색하는 과정이다.
(추상화) 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용임. 불필요한 부분 없애고 일반화된 모델 만들기. 지도나 커피머신이 있음. 내부 구조 모르고 딸깍.
(알고리즘) 문제 해결하기 위해 추상화된 핵심 원리를 일련의 절차로 표현하는 과정임. 이를 의사코드로 간결하게 기술함.
(순서도) 직사각형, 마름모, 평사 등으로 논리적 흐름 표현함.
(자동화) 알고리즘에서 찾은 일련의 과정을 수행해 문제해결의 결과를 확인하는 과정임. 프레젠테이션이나 모의실험 활용.
멀티 프로그램밍, 멀티 프로세스, 멀티 테스크? 잡? 무슨 관점?
타임 쉐어링/? 멀티 태스킹 가능? 쉘 기능? cli -> 커널에게 제공함.
마이크로 커널? 원도우 탭? 보기 옵션? (이걸 알아야 하나;;) 레지스트리 편집기?
분할 정복? 컴퓨팅 사고? 자료 수집? 요구사항 정의? 추상화? 자동화? 문제해결?
3티어? 클라(presentation) - 서버 - 디비 (data)? 바이너리 트리, 분할 정복? 그래프?
문제 객관식? 걍 대강 알면 되는건강?