상태(컴퓨터 과학)
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가 이전 방송국 및 볼륨 레벨로 돌아갑니다.
다른 예로 마이크로프로세서의 상태는 마이크로프로세서의 모든 메모리 요소(어큐뮬레이터, 스토리지 레지스터, 데이터 캐시 및 플래그)의 내용입니다.노트북 등의 컴퓨터가 절전 모드로 전환되어 프로세서를 셧다운하면 프로세서의 상태가 컴퓨터의 하드디스크에 저장되므로 컴퓨터가 절전 모드에서 벗어나면 프로세서가 작동을 시작할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "What is stateless? - Definition from WhatIs.com". techtarget.com.
- ^ Harris, David Money; Harris, Sarah L. (2007). Digital Design and Computer Architecture. USA: Morgan Kaufmann. p. 103. ISBN 978-0123704979.
- ^ Kaeslin, Hubert (2008). Digital Integrated Circuit Design: From VLSI Architectures to CMOS Fabrication. UK: Cambridge University Press. p. 735. ISBN 978-0521882675.
- ^ 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
- ^ Laplante, Philip A. (2000). Dictionary of Computer Science, Engineering and Technology. USA: CRC Press. p. 466. ISBN 978-0849326912.
- ^ Misra, Jayadev (2001). A Discipline of Multiprogramming: Programming Theory for Distributed Applications. Springer. p. 14. ISBN 978-0387952062.
- ^ Prata, Stephen Prata (2004). C Primer Plus, 5th Ed. Pearson Education. pp. 113–114. ISBN 978-0132713603.