상태(컴퓨터 과학)

State (computer science)

정보기술(IT)과 컴퓨터 과학에서 시스템은 이전의 사건이나 사용자의 [1]상호작용을 기억하도록 설계된 경우 스테이트풀(stateful)로 기술됩니다.기억된 정보는 시스템의 상태라고 불립니다.

시스템이 점유할 수 있는 일련의 상태를 상태 공간이라고 합니다.이산 시스템에서 상태 공간은 셀 수 있고 종종 유한합니다.시스템의 내부 동작 또는 환경과의 상호작용은 입력 수용이나 출력 생성과 같이 개별적으로 발생하는 개별 동작 또는 이벤트로 구성됩니다.이러한 동작은 시스템의 상태를 변화시키거나 변화시키지 않을 수 있습니다.그러한 시스템의 예로는 디지털 논리 회로와 부품, 오토마타정식 언어, 컴퓨터 프로그램, 컴퓨터 등이 있습니다.

디지털 회로 또는 결정론적 컴퓨터 프로그램의 출력은 언제든지 전류 입력과 [2]상태에 따라 완전히 결정됩니다.

디지털 논리 회로 상태

디지털 논리회로는 두 가지 유형으로 나눌 수 있습니다. 즉, 출력신호는 현재의 입력신호에만 의존하며, 출력은 현재의 입력과 과거의 [3]입력 이력의 함수인 순차적 논리입니다.시퀀셜 로직에서는 과거 입력으로부터의 정보가 플립 플랍 등의 전자 메모리 소자에 기억된다.이러한 메모리 소자의 격납 내용은, 특정의 시점에서, 통칭해 회선 상태라고 불리며, [4]회선이 액세스 할 수 있는 과거에 관한 모든 정보를 포함합니다.

플립 플랍과 같은 각 바이너리 메모리 소자는 1 또는 0의 2개의 가능한 상태만을 가지며 메모리 소자의 수는 유한하기 때문에 디지털 회로는 특정 수의 가능한 상태만을 가진다.N이 회로 내의 바이너리 메모리 소자의 수인 경우, 회로가 가질 수 있는 최대 스테이트 수는 2입니다N.

프로그램 상태

마찬가지로 컴퓨터 프로그램은 컴퓨터 메모리의 저장 위치를 나타내는 변수에 데이터를 저장합니다.이러한 메모리 위치의 내용은 프로그램 실행 중 특정 시점에 프로그램 [5][6][7]상태라고 합니다.

보다 전문적인 상태의 정의는 파서, 방화벽, 통신 프로토콜암호화와 같은 데이터 스트림에서 직렬 또는 순차적으로 작동하는 컴퓨터 프로그램에 사용됩니다.시리얼 프로그램은 착신 데이터 문자 또는 패킷에 대해 한 번에 하나씩 순차적으로 동작합니다.이러한 프로그램의 일부에서는, 이전의 데이터 문자 또는 수신 패킷에 관한 정보가 변수에 격납되어 현재의 문자 또는 패킷의 처리에 영향을 주는 데 사용됩니다.이를 상태 저장 프로토콜이라고 하며 이전 처리 사이클에서 이월된 데이터를 상태라고 합니다.다른 경우 프로그램은 이전 데이터 스트림에 대한 정보가 없으며 각 데이터 입력에 따라 새로 시작됩니다. 를 상태 비저장 프로토콜이라고 합니다.

명령형 프로그래밍은 프로그램 상태 및 프로그램 상태를 변경하는 문장의 관점에서 계산을 설명하는 프로그래밍 패러다임(프로그래밍 언어 설계 방법)입니다.상태 변경은 암시적으로 프로그램 런타임에 의해 관리되므로 서브루틴은 부작용으로 알려진 프로그램의 다른 부분에 의해 이루어진 상태 변경을 수 있습니다.

선언형 프로그래밍 언어에서는 프로그램이 원하는 결과를 설명하며 상태 변경을 직접 지정하지 않습니다.

기능적 프로그래밍에서 상태는 보통 프로그램 실행의 각 단계에서 프로그램 상태를 나타내는 명시적 변수로서 시간적 논리로 표현된다: 상태 변수는 상태 변환 함수의 입력 매개 변수로서 전달되며, 상태 변수는 업데이트된 상태를 반환 값의 일부로 반환합니다.순수 기능성 서브루틴은 스코프의 상태변수로 나타나는 상태변화만 볼 수 있습니다.

유한 상태 기계

시퀀셜 회로 또는 컴퓨터 프로그램의 출력은 언제든지 전류 입력과 전류 상태에 따라 완전히 결정됩니다. 바이너리 메모리 소자는 0 또는 1의 두 가지 상태만을 가지므로 회로가 가정할 수 있는 다른 상태의 총수는 유한하며 메모리 소자의 수에 따라 고정됩니다.N개의 바이너리 메모리 요소가 있는 경우 디지털 회로는 최대N 2개의 개별 상태를 가질 수 있습니다.상태의 개념은 유한 상태 기계라고 불리는 추상적인 계산 모델로 공식화되어 순차적 디지털 회로와 컴퓨터 프로그램을 설계하는데 사용됩니다.

상태가 있는 일상적인 장치의 예로는 텔레비전이 있습니다.TV의 채널을 변경하려면 리모컨의 "채널 업" 또는 "채널 다운" 버튼을 누르면 코드화된 메시지가 세트로 전송됩니다.사용자가 원하는 새 채널을 계산하려면 TV의 디지털 튜너에 현재 켜져 있는 채널의 번호가 저장되어 있어야 합니다.그런 다음 이 번호에서 1을 더하거나 빼서 새 채널의 번호를 가져오고 TV를 조정하여 해당 채널을 수신합니다.그러면 이 새 번호가 현재 채널로 저장됩니다.마찬가지로 텔레비전은 스피커에 의해 생성되는 음량 수준을 제어하는 숫자도 저장합니다."볼륨 업" 또는 "볼륨 다운" 버튼을 누르면 이 수치가 증가하거나 감소하여 새로운 레벨의 볼륨이 설정됩니다.현재 채널 번호와 현재 볼륨 번호 모두 TV 상태의 일부입니다.비휘발성 메모리에 저장되므로 TV를 다시 켜면 TV가 이전 방송국 및 볼륨 레벨로 돌아갑니다.

다른 예로 마이크로프로세서의 상태는 마이크로프로세서의 모든 메모리 요소(어큐뮬레이터, 스토리지 레지스터, 데이터 캐시 및 플래그)의 내용입니다.노트북 등의 컴퓨터가 절전 모드로 전환되어 프로세서를 셧다운하면 프로세서의 상태가 컴퓨터의 하드디스크에 저장되므로 컴퓨터가 절전 모드에서 벗어나면 프로세서가 작동을 시작할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "What is stateless? - Definition from WhatIs.com". techtarget.com.
  2. ^ Harris, David Money; Harris, Sarah L. (2007). Digital Design and Computer Architecture. USA: Morgan Kaufmann. p. 103. ISBN 978-0123704979.
  3. ^ Kaeslin, Hubert (2008). Digital Integrated Circuit Design: From VLSI Architectures to CMOS Fabrication. UK: Cambridge University Press. p. 735. ISBN 978-0521882675.
  4. ^ Srinath, N. K. (August 2005). 8085 Microprocessor: Programming and Interfacing. Prentice-Hall of India Pvt. Ltd. p. 326. ISBN 978-8120327856. Retrieved 7 December 2012. page 46
  5. ^ Laplante, Philip A. (2000). Dictionary of Computer Science, Engineering and Technology. USA: CRC Press. p. 466. ISBN 978-0849326912.
  6. ^ Misra, Jayadev (2001). A Discipline of Multiprogramming: Programming Theory for Distributed Applications. Springer. p. 14. ISBN 978-0387952062.
  7. ^ Prata, Stephen Prata (2004). C Primer Plus, 5th Ed. Pearson Education. pp. 113–114. ISBN 978-0132713603.