[구름 k8s] TIL 1-1-1

Peppie·2022년 8월 1일
0

1. 컴퓨터 시스템 이해

컴퓨터 시스템 구성 (現 사용방식은 내장방식 즉 노이만형 컴퓨터 시스템)

Hardware (기계장치)

[ CPU ] : 연산기능 O / 제어기능 O / 기억기능 X

"CPU가 빠르다 -> 명령 해석 속도가 빠르다"

연산기능: ALU (Arithmetic Logic Unit, 연산장치, ★CPU의 핵심★)

  • 산술연산: + - * / 등
  • 관계연산: < > = 등
  • 논리연산: AND / OR

제어기능: CU (Control Unit, 제어장치)

  • 명령해석 (이를 토대로 ALU가 연산)
  • 연산결과에 대한 제어신호 관리

기억기능 X => CPU 만으로는 컴퓨터 작동 X, 모든 내용을 메모리에서 가져옴
(접근할 때 반드시 주소지정)

CPU Core : ALU + CU (ex ; 듀얼코어 => ALU x 2 + CU x 2)

  • x86 계열 - 개인용 PC, 서버 (x86: 32bit data bus, x86_64: 64bit data bus)
  • ARM 계열 - 임베디드 용

Bus System

  • CPU - 메모리 간 통신 수행경로
  • 해당 크기에 따라 메모리 최대크기 결정
  • Address Bus: 메모리 주소 지정
  • Data Bus: 데이터 이동통로, CPU 종류 결정 시 사용 크기
  • Control Bus: 제어신호 이동통로

[ Memory ]

"CPU와 메모리가 있어야만 컴퓨터 작동!"
-역할: 프로그램 코드 및 데이터 저장
Memory 구성 소자
ROM (Read Only Memory): 읽기 전용, 비휘발성, 느린 속도, only 보관목적 (실제사용 시 RAM에 복사하여 사용)

  • Mask ROM: 기록 X
  • PROM (1번만 기록) / EPROM (여러번 기록 가능) / EEPROM (여러번 기록 가능 2, ex; Flash Memory - 전자적으로 지우는게 가능하나 RAM 대체용으로 쓰기에는 비용 비싸고 느림) : 기록 O

RAM (Random Access Memory): 자유로운 읽기/쓰기, 휘발성 (일시저장 O but 영구보관 X)

  • SRAM (Static): 속도 빠르나 비쌈; 주로 캐시메모리 용도
  • DRAM (Dynamic): PC에서 주로 사용

CPU와 메모리만 연결됨 (CPU - I/O 장치연결 X)

[ I/O Device ]

메모리와 연결 -> 메모리-I/O장치 간 속도차 (메모리 >> CPU >>>>> I/O 장치) 줄이기 위해 메모리 영역에 각 I/O 장치를 위한 공간 (I/O Buffer)를 설정하여 관리

  • Input 전용 장치: 키보드(표준입력장치-stdin), 마우스, 마이크, 카메라
  • Output 전용 장치: 모니터(표준출력장치-stdout 및 표준에러표시장치-stderr), 스피커, 프린터
  • Input / Output 전용 장치:
    - HDD / SSD (보존기억장치, 2차 메모리)
    • 프로그램/데이터 보관 목적
    • OS, App, Data 등 저장
    • HDD는 가격/용량에서 장점, SSD는 속도에서 장점
      - Touchscreen (표준 X)
  • 표준장치가 아니면 I/O 장치 사용 위한 별도 프로그램 필요 => "Device Driver"

Software (컴퓨터 프로그램; 명령의 집합)

프로그램 실행 순서

  1. 명령을 메모리에 저장
  2. CPU에 의하여 명령 해석
  3. 해석된 명령에 대한 데이터 처리
  4. 명령처리 결과를 메모리에 저장 or I/O 장치를 이용한 입출력처리

[ System SW ]

HW 제어 및 사용자 인터페이스

운영체제 (OS = Operating System, ★★★가장 핵심★★★)
종류
-MS Windows: 유료, x86 계열에서 작동
-Linux: 무료, x86/ARM 계열에서 모두 작동, 오픈소스
-MacOS: 유료, UNIX 계열 BSD 기반 OS

운영방식
-CLI (Command Line Interface) / CUI (Character User Interface)
: 명령 입력 방식에 의한 OS사용, 세심한 환경관리 가능
-GUI (Graphic User Interface)
: 그래픽으로 표시, 마우스 기반으로 OS 사용

구성
-kernel : HW 제어
-User Interface (Shell) : 사용자-커널 간 인터페이스

[ Application SW ]

End-user가 원하는 기능을 제공하는 일반 App

2. 프로그래밍 이해

프로그래밍: Application 또는 Library를 만드는 과정

프로그래밍을 위한 구성 요소 (개발환경)

  • 프로그래밍 언어
    -컴파일형 언어: 일괄번역 기능 사용, 빠른 실행속도 (C, C++, JAVA, C# 등)
    -인터프리터형( ≒ 스크립트형) 언어: 개발에서 실행까지 빠른 단계와 쉬운 문법 but 느린 실행속도 (Python, Javscript, Node.js 등)

  • 프로그래밍 언어로 작성한 코드를 실행가능한 형태로 만드는 프로그램 (개발자를 위한 infra 구축 대상)
    -컴파일러: 컴파일형 언어로 실행형태로 변경
    -인터프리터: 인터프리터형 언어를 실행

  • 프로그램 코드 작성 환경 (개발자를 위한 infra 구축 대상)
    -소스 코드 에디터: 메모장, Visual Studio Code 등
    -통합 개발 환경(IDE, Integrated Development Environment): 소스코드 작성, 컴파일/인터프리팅, 실행, 디버깅을 하나의 프로그램으로 수행
    • ex) 비주얼 스튜디오, Pycharm, Eclipse 등

  • 실행 프로그램 디버깅 환경 (개발자를 위한 infra 구축 대상)
    - 디버거: 버그(bug) 수정을 위한 프로그램

3. 운영체제 이해

운영체제(OS, Operating System): 컴퓨터 시스템 운영 역할을 담당하는 System SW

구성:

  • kernel
  • shell

운영체제 구성 유형

  • 물리적인 컴퓨터 시스템에 직접 설치
    -기본 형태
    -단독 사용 목록
    -하나의 OS만 사용가능

  • 가상 컴퓨터 시스템에 설치
    -가상 컴퓨터: SW적으로 구성한 컴퓨터, CPU / Memory / IO장치는 물리적 장치 공유
    -여러 OS를 동시에 사용하고 싶을 때 구성 가능
    -가상 PC SW 사용을 위해서는 x86 계열에서는 Hypervisor 기능 활성화 필요
    => BIOS 설정을 통해 확인

  • Cloud 환경의 가상 컴퓨터 시스템에 설치
    -가상 컴퓨터 환경에서 원하는 OS 환경설정 구성
    -가상 컴퓨터 환경의 위치는 Cloud 서비스 업체의 서버에 위치, 사용자는 인터넷으로 접속하여 사용
    -Cloud 서비스 업체의 서비스를 통하여 원하는 OS 환경 구성 및 사용

0개의 댓글