컴퓨터 공학

김나율·2022년 11월 30일
0

section4

목록 보기
2/9

◎컴퓨터의 기본 구조

  • 하드웨어: 전자 회로 및 기계 장치로 되어 있어 입출력 장치, 중앙처리장치, 기억장치 등으로 구성되어있디.
  • 소프트웨어: 하드웨어 위에서 하드웨어를 제어하며 작업을 수행하는 프로그램

‣기본 구성 요소

  • 입력장치
    : 컴퓨터가 처리할 수 있는 형태로 데이터와 명령을 받아들이는 물리적인 장치
    ex) 키보드, 마우스 등
  • 출력장치
    : 처리된 데이터를 사람이 이해할 수 있는 형태로 출력하는 물리적인 장치
    ex) 모니터 등
  • 중앙처리장치
    • 산술: 덧셈을 수헹
    • 제어장치: 프로그램에 따라 명령과 제어 신호를 생성하여 각종 장치의 동작을 제어하는 것
    • 레지스터: CPU에서 사용하는 데이터를 일시적으로 저장하는 장소
  • 저장장치
    • 주 기억장치: 데이터나 프로그램을 보관하기 위한 일차 기억장치
      ex) RAM, ROM 등
    • 보조 기억장치: 주기억장치를 보조하기 위한 디스크
      ex) USB, SSD 등

‣CPU와 메모리

  • CPU
    : 각종 연산을 수행하고 기억장치에 기억되어 있는 명령어들을 수행하는 컴퓨터 시슴템을 이루는 핵심 부품
  • CPU의 구조
    • 산술/논리 연산 장치(ALU)
      : 레지스터에 저장된 데이터를 이용하여 산술 연산을 수행
    • 레지스터
      : CPU 내부에 있는 기억장치
      => 범용레지스터: 산술 연산 논리장치에 의해 사용, 전용레지스터: PC 등 특수목적에 사용
      1. IR: 현재 수행중에 있는 명령어 부호를 저장하고 있는 레지스터
      2. PC: 명령이 저장된 메모리의 주소를 가리키는 레지스터
      3. AC: 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터
    • 제어장치(CU)
      : CPU가 자신 및 주변기기들을 컨트롤하는 장치
      => 프로그램 계수기: 프로그램의 수행순서를 제어, 명령레지스터: 현재 수행중인 명령어의 내용을 임시 기억, 명령해독기: 명령레지스터에 수록된 명령을 해독하여 수행될 장치에 제어신호를 보냄
  • Memory
    • 메모리 종류
      -주기억장치
      1.RAM
      : RAM의 크기는 프로그램의 수행속도에 영향을 준다.
      2.ROM
      : 대부분 읽을 숭만 있는 장치로 구성되어 있으며 전원이 끊겨도 내용이 보존된다.
      -보조기억장치
      1.자기디스크
      :원판 표면의 철입자의 방향으로 0과1을 표현
      2.광디스크
      : 빛의 반사를 이용하여 자료를 읽어내느 저장매체
      3.플래시 메모리
      : 전자적으로 데이터를 지우고 쓸수 있는 비휘발성 메모리로 충격에 함
    • 캐시메모리
      : 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할

◎운영체제

‣프로세스

: 하드웨어를 구성하는 CPU, 자료를 저장하는 RAM, 디스크 등의 시스템 자원을 관리하는 주체

  • 응용프로그램: 운영체제를 통해 컴퓨터에게 일을 시키는 것

‣프로세스

: 프로그램이 실행중인 상태, 특정 메모리 공간에 프로그램의 코드가 적재되고 CPU가 해당 명령어를 하나씩 수행하고 있는 상태

  • 프로세스의 구성요소
  1. 유저 메모리 영역 관리
    : 프로세스 별로 독립된 영역을 가지게 되는 곳
  2. 핸들 테이블
    : 프로세스에서 사용하는 모든 핸들에 대한 커널 객체 포인터 정보를 배열 형태로 가지고 있는 공간
  3. 독립적인 메모리 공간
    : 페이징 기법을 이용하여 프로세스마다 별도의 고유한 메모리를 사용할수 있다.
  • 프로세스 특징
    • 자원 소유의 단위: 각각의 프로세스는 자싱의 실행 이미지 로드와 실행에 필요한 추가적인 메모리 공간을 가지고 있어야한다.
    • 디스패칭의 단위: 하나의 프로세스에서 여러 개의 디스패팅 단위가 실행될 수 있도록 하는 것 => 스레드
  • 프로세스 상태
    • 실행(run): 프로세스가 프로세서를 차지하여 서비스를 받고 있는 상태
    • 준비(ready): 실행될 수 있도록 준비되는 상태
    • 대기(waiting): CPU의 사용이 아니라 입출력의 사건을 기다리는 상태

‣스레드

: 명령어가 CPU를 통해서 수행되는 객체의 단위
-하나의 프로세스 내에는 반드시 1개 이상의 스레드가 존재
-같은 프로세스에 있는 자원과 상태를 공유
-여러 개의 작업 단위로 구성된 프로그램에서 요청을 동시에 처리하기 위해 필요

  • 스레드의 구성요소
    • 가상CPU: 인터프리터, 컴파일러에 의해 내부적으로 처리되는 가상 코드
    • 수행코드: Thread Class에 구현되어 있는 run()Method코드
    • 처리 데이터: Thread에서 처리하는 데이터
  • 싱글 스레드와 멀티 스레드
    • 싱글 스레드: 프로세스가 단일 스레드로 동작하는 방식, 단일 스레드만으로 직렬처리
    • 멀티 스레드: 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것
  • 동시성과 병렬성의 차이
    -시분할: 각 스레드를 시간에 따라 분할하여, 여러 스레드가 일정 시간마다 돌아가면서 실행되도록 한다.
    -Concurrency(동시성, 병행성): 여러 개의 스레드가 시분할 방식으로 동시에 수행되는 것처럼 착각을 불러일으킴
    • Parallelism(병렬성): 멀티 코어 환경에서 여러 개의 스레드가 실제로 동시에 수행됨

◎문자열과 그래픽

‣문자열

  • 유니코드: 전 세계의 모든 문자를 컴퓨터에서 일관 되게 표현하고, 다룰 수 있도록 설계된 산업표준
  • ASCII문자: 7비트로 모든 영어 알파벳을 표현
    -UTF-8
    • 가변 길이 인코딩: 1byte에서 4bytes까지 사용
    • 바이트 순서가 고정
      -UTF-16
    • 코드 그대로 바이트로 표현 가능
      -바이트 순서가 다양

‣그래픽

  • 시분할비트맵(래스터 그래픽=점방식)
    : 이미지의 각 점들을 격자형의 픽셀 단위로 구성되며, 한 지역을 차지하는 셀은 위치에 따라 다른 값을 갖는다.
  • 시분할벡터
    : 이미지를 수학적인 공식으로 표현

◎가비지 컬렉션

: 프로그램에서 더이상 사용하지 않는 메모리를 자동으로 정리하는 것

  • 메모리 생존 주기
    : 어떤 프로그래밍 언어에 관계 없이 비슷
  1. 필요할때 개발자가 할당
    ex)
     let arr = [100, 200, 300, 400]
  2. 할당된 메모리 사용: 할당된 메모리를 읽고 쓰는 것
  3. 메모리가 더이상 필요하지 않으면 해제
  • 가비지 컬렉션의 방법
    • 래퍼런스 카운팅(참조 횟수 계산)
      : 한 객체를 참조하는 변수의 수를 추적하는 방법
    • 트레이싱
      :한 객체에 flag를 두고, 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는 mark and sweep방법

0개의 댓글