728x90
반응형
SMALL

튜링 머신(Turing Machine)

  • 알고리즘의 개념을 형식화한 컴퓨터 과학에서 중요한 개념 중 하나이다.
  • 앨런 튜링(Alan Turing)에 의해 개발된 이론적인 모델로, 모든 컴퓨터가 실행 가능한 기본적인 형태의 기계이다.

튜링 머신은 가상의 추상 기계로, 무한한 길이의 테이프(또는 무한한 저장 공간)와 테이프를 읽고 쓸 수 있는 헤드(Head)로 구성된다. 테이프는 연속적인 셀로 나뉘며, 각 셀에는 데이터(기호 또는 문자)를 저장할 수 있다. 튜링 머신은 헤드를 사용하여 테이프의 특정 위치에 액세스하고, 데이터를 읽고 쓸 수 있다.

튜링 머신은 상태(State)와 전이 규칙(Transition Rule)으로 구성된 제어 유닛을 가지고 있다. 상태는 튜링 머신의 현재 상태를 나타내며, 전이 규칙은 현재 상태와 헤드의 위치에서 어떤 동작을 수행해야 하는지를 정의한다. 동작은 현재 읽은 데이터에 따라 헤드를 이동시키고 데이터를 변경하며, 다음 상태로 전환하는 것을 의미한다.

튜링 머신은 다양한 계산 작업을 수행할 수 있다. 튜링 머신은 입력을 받아 문제를 해결하는데 사용되며, 계산 문제를 알고리즘적으로 해결할 수 있는 모든 작업을 수행할 수 있음이 증명되었다. 튜링 머신의 기본 원리를 기반으로 하는 현대 컴퓨터는 튜링 완전(Turing complete)이라고 알려져 있다.

튜링 머신은 컴퓨터 과학의 핵심적인 개념으로서, 계산 이론, 알고리즘 분석, 컴퓨터 언어 설계, 컴퓨터 아키텍처 등 다양한 분야에서 사용되고 연구되고 있다. 튜링 머신은 현대 컴퓨팅의 개념과 기초를 이해하는 데 중요한 도구로 활용되고 있다.

728x90
반응형
LIST

'CS' 카테고리의 다른 글

프로세서의 클럭  (0) 2023.05.22
분산 컴퓨팅(Distributed Computing)  (1) 2023.05.22
캐싱(Caching)  (0) 2023.05.22
소프트웨어 아키텍쳐  (0) 2023.05.13
압축파일  (0) 2023.05.11
728x90
반응형
SMALL

캐싱(Caching)

  • 데이터나 결과를 임시로 저장하여 나중에 빠르게 액세스할 수 있도록 하는 메커니즘이다.
  • 캐싱은 컴퓨터 시스템의 성능을 향상시키고, 데이터 액세스 속도를 개선하며, 시스템의 부하를 줄이는 데에 유용하다.
  • 캐싱은 데이터의 지역성 원리에 기반한다. 지역성은 데이터에 접근할 때 일부 데이터가 다른 데이터와 함께 자주 사용된다는 원리를 의미한다.
  • 이를 통해 캐시는 최근에 액세스된 데이터나 결과를 저장하여 이후 동일한 데이터에 대한 액세스를 빠르게 처리한다.

캐싱은 다양한 시스템에서 사용될 수 있다. 여기에는 웹 브라우저의 웹 페이지 캐싱, 데이터베이스 서버의 쿼리 결과 캐싱, 프로그래밍 언어의 함수 호출 결과 캐싱 등이 포함된다. 아래는 일반적으로 사용되는 캐싱의 유형과 개념입니다:

  1. 메모리 캐싱: 시스템의 주 메모리에 접근하는 비용을 줄이기 위해 데이터를 메모리에 캐시합니다. 이를 통해 CPU는 메모리에서 데이터를 직접 액세스하는 것보다 훨씬 빠른 속도로 데이터에 액세스할 수 있다.
  2. 디스크 캐싱: 디스크 캐시는 하드 디스크의 성능을 향상시키기 위해 사용됩니다. 디스크 캐시는 일부 데이터를 디스크와 메모리 사이에 저장하여 빠른 액세스를 제공한다. 이를 통해 반복적인 디스크 액세스를 줄이고, 응용 프로그램의 응답 시간을 단축시킬 수 있다.
  3. 웹 캐싱: 웹 브라우저는 이전에 방문한 웹 페이지의 캐시된 버전을 저장하여 다시 액세스할 때 더 빠르게 렌더링할 수 있다. 이를 통해 웹 페이지의 로딩 속도를 향상시키고, 네트워크 대역폭을 절약할 수 있다.
  4. 쿼리 캐싱: 데이터베이스에서 쿼리 결과를 캐시하여 동일한 쿼리에 대한 반복적인 실행을 방지한다. 쿼리 캐싱은 데이터베이스의 부하를 줄이고, 응답 시간을 단축시키는 데에 도움을 준다.
  5. 객체 캐싱: 객체 캐싱은 프로그래밍 언어나 프레임워크에서 사용되는 개체의 인스턴스를 임시로 저장하는 메모리 영역이다. 이를 통해 객체 생성 비용을 줄이고, 애플리케이션의 성능을 향상시킬 수 있다.

캐싱은 데이터의 빠른 액세스와 시스템 성능 향상을 제공하므로, 적절한 캐싱 전략과 관리가 중요하다. 캐시의 유효성 검사, 캐시 메모리의 크기 및 용량 설정, 데이터의 갱신 관리 등을 고려하여 효과적인 캐싱 시스템을 구축할 수 있다.

728x90
반응형
LIST

'CS' 카테고리의 다른 글

분산 컴퓨팅(Distributed Computing)  (1) 2023.05.22
튜링 머신(Turing Machine)  (0) 2023.05.22
소프트웨어 아키텍쳐  (0) 2023.05.13
압축파일  (0) 2023.05.11
MPE  (0) 2023.05.11
728x90
반응형
SMALL

“어떤 단위의 기수가 2라면 그 단위는 이진 숫자, 더 줄여서 비트라고 할 수 있는데, 이는 존 투키가 제안한 단어다.” - 클로드 섀넌,1948

컴퓨터가 정보를 표현하는 방식

  1. 디지털 처리장치
    • 컴퓨터는 불연속적인 덩어리로 입력받고, 불연속적인 값을 갖는 정보를 저장하고 처리한다.(디지털 정보는 기본적으로 수에 불과함)
    • 아날로그 정보는 연속적으로 변하는 값을 뜻함
  2. 정보를 비트로 표현
    • 비트는 이진 숫자로, 0 또는 1인 수
    • 컴퓨터 내부의 모든 것은 십진수가 아닌 비트로 표현
  3. 더 큰 정보를 표현
    • 숫자, 문자, 단어, 이름, 소리, 사진, 영화부터 이러한 정보를 처리하는 프로그램을 구성하는 명령어 모두 비트가 모여 표현

아날로그와 디지털

아날로그(analog) : 유사하다는 뜻, 다른 어떤 것이 변함에 따라 연속적으로 변하는 값이라는 개념을 전달

ex) 수도꼭지, 자동차 핸들 // 원하는 만큼 조금씩 조정할 수 있다.

디지털 시스템 : 불연속적인 값을 다룸, 가능한 값의 수가 정해짐

ex) 방향 지시등 // 어떤 것이 조금 변하면, 다른 어떤 것은 변하지 않거나 한 값에서 다른 값으로 갑자기 변함

  • 기존 출처와는 무관하게 다양한 방식으로 저장, 전송, 처리될 수 있음
  • 불필요하거나 중요하지 않은 정보를 버리는 방식으로 압축될 수 있어 네트워크를 통해 전송할 때 효과적이다.
  • 보안과 개인정보 보호를 암호화되고, 다른 데이터와 병합되고, 그대로 북사되고, 인터넷을 통해 어디로든 옮겨지고, 한 없이 다양한 장치에 저장될 수 있다.

아날로그에 비해 디지털 방식이 갖는 또 다른 장점은 훨씬 쉽게 확장할 수 있다.

 


컴퓨터의 정보 표현 방식

  1. 컴퓨터는 디지털 처리 장치로 불연속적이며 이산적인 속성을 가진 정보를 저장하고 처리한다.
  2. 정보를 비트(이진숫자, 0또는 1)로 표현한다.
  3. 비트는 모여 더 큰 정보 (숫자, 문자, 소리, 사진, 영화 등) 를 표현한다.

아날로그 (analog)

유사하다는 analogous어원과 같음

뜻: 연속적으로 변하는 값

변화하는 정도에 비례하여 계속 값이 변함

예. 자동차 핸들, 수도꼭지

디지털 (digital)

불연속적인 값을 다루기 때문에 가능한 값의 수가 정해져 있음

값이 변하면 다른 것은 변하지 않거나 아예 다른 값으로 변함

예. 자동차 방향 지시등

외부 세계에서 수집된 데이터 (소리, 영상, 움직임, 온도) 는 입력단에서 디지털 형태로 일찍 변환되고, 출력단에서 최대한 늦게 아날로그로 변환된다.

아날로그 대신 디지털 방식을 사용하는 이유

  • 컴퓨터에서는 디지털 데이터를 다루기 쉽고 기존 출처와는 다르게 다양한 방식으로 저장, 전송, 처리될 수 있기 때문
  • 불필요하거나 중요하지 않은 정보를 버리는 방식으로 압축 가능하기에 네트워크로 전송할 때 효과적
  • 보안과 개인정보를 위한 암호화가 되고, 다른 데이터와 병합 혹은 그대로 복사, 이동, 저장이 용이함
  • (아날로그에서는 불가능한 특징)
  • 쉽게 확장할 수 있음
    • 예. 디지털 시계 : 스톱워치에서 100분의 1초단위까지 표시할 수 있음

cf. 아날로그의 장점

  • 점토판, 석각, 종이, 사진 필름같은 기존 매체
728x90
반응형
LIST

+ Recent posts