For faster navigation, this Iframe is preloading the Wikiwand page for מצב (מדעי המחשב).

מצב (מדעי המחשב)

במדעי המחשב ובתורת האוטומטים, מצבאנגלית: state) הוא תצורה (קונפיגורציה) ייחודית של נתונים במעגל דיגיטלי או בתוכנה. המונח משמש לתיאור כלל הנתונים המאוחסנים ברגע נתון בזמן, שהמעגל או התוכנה יכולים להשתמש בהם. ניתן להתייחס למצב כתמונת מצב (snapshot) של התנאים השונים המתקיימים ברגע זה במערכת.

בתורת האוטומטים

תרשים של אוטומט סופי דטרמיניסטי בעל שני מצבים: S1 ו-S2 (מצב S1 הוא מצב מקבל);דוגמה זו מציגה אוטומט שקובע האם מספר בינארי מכיל מספר זוגי או אי-זוגי של אפסים.
תרשים של אוטומט סופי דטרמיניסטי בעל שני מצבים: S1 ו-S2 (מצב S1 הוא מצב מקבל);
דוגמה זו מציגה אוטומט שקובע האם מספר בינארי מכיל מספר זוגי או אי-זוגי של אפסים.

בתורת האוטומטים, "מצב" מוגדר פורמלית במסגרת מודל מתמטי חישובי אבסטרקטי שנקרא אוטומט סופי (מכונת מצבים). מודל זה משמש הן בעיצוב של מעגלים דיגיטליים סדרתיים והן בעיצוב של תוכנות מחשב.

בין אם מדובר באוטומט סופי, באוטומט מחסנית או אפילו במכונת טיורינג מלאה, "מצב" הוא סט ספציפי של הוראות אשר יבוצעו בתגובה לקלט שיתקבל. ניתן לחשוב על מצב כמקבילה לזיכרון הראשי במחשב אמיתי.

בתורת האוטומטים, התנהגות המערכת היא פונקציה של: (1) הגדרת האוטומט; (2) הקלט שהאוטומט מקבל; (3) המצב הנוכחי של האוטומט.

סוגי מצבים

  • מצבים תואמים (compatible states) הם מצבים במכונת מצבים שאינם סותרים זה את זה עבור כל קלט אפשרי. כך עבור כל קלט, שני המצבים צריכים לתת את אותו הפלט, והמצב הבא שאליו עוברים משני המצבים אמור להיות זהה, או שלא אמור להיות מעבר למצב אחר. קיום מצבים תואמים הוא מיותר אם הם קיימים באותה מכונת מצבים.
  • מצבים ברי הבחנה (distinguishable states) הם מצבים במכונת מצבים שקיים עבורם לפחות רצף קלטים אחד שמביא לרצף פלטים שונה, ללא קשר למהו המצב ההתחלתי.
  • מצבים שקולים (equivalent states) הם מצבים במכונת מצבים אשר עבור כל רצף אפשרי של קלטים, יפיקו את אותו הרצף של פלטים, ללא קשר למהו המצב ההתחלתי.

בחומרה

באלקטרוניקה ספרתית, הפלט של מעגלים סדרתיים הוא פונקציה של הקלט הנוכחי וגם של היסטוריית הקלטים הקודמים. במעגלים מסוג זה, המידע מהקלטים הקודמים מאוחסן ברכיבי זיכרון אלקטרוניים כדוגמת פליפ פלופ. כלל תוכן המידע אשר מאוחסן ברגע נתון בזמן על גבי רכיבי זיכרון כאלה, הוא "המצב" של המעגל. המצב מייצג את כל המידע המזוקק לגבי העבר, שלמעגל יש גישה אליו. לדוגמה, המצב של מיקרו מעבד הוא התוכן של כל רכיבי הזיכרון במעגל המשולב, כגון זיכרון מטמון, אוגרים ודגלים.

כאשר מחשבים כמו לפטופים נכנסים למצב שינה ממושך (hibernation) על מנת לחסוך באנרגיה על ידי כיבוי המעבד, המצב של המעבד ותוכן זיכרון ה-RAM נשמרים לכונן הקשיח של המחשב, כך שניתן יהיה לשחזר אותם כאשר המחשב ייצא ממצב השינה, והמעבד יוכל להמשיך לעבוד מאותו המצב בו נעצר קודם.

מאחר שלכל רכיב זיכרון בינארי יכולים להיות רק שני מצבים אפשריים, 0 או 1, המספר הכולל של מצבים שונים שמעגל ספרתי יכול להימצא בהם הוא סופי, ומוגבל על ידי מספר רכיבי הזיכרון. אם במעגל ספרתי ישנם N רכיבי זיכרון בינאריים, למעגל יכולים להיות לכל היותר 2N מצבים שונים.

בתוכנה

באופן דומה, תוכנות מחשב שומרות נתונים בתוך משתנים המייצגים מקומות אחסון בזיכרון המחשב. התוכן של המקומות האלה בזיכרון, ברגע מסוים בזמן הריצה של התוכנית, נקרא המצב של התוכנית.

לעיתים משתמשים בהגדרה צרה יותר של המושג עבור תוכנות מחשב הפועלות בצורה סדרתית על זרמים של נתונים, כגון תוכנות לביצוע ניתוח תחבירי (parsers), חומות אש, ותוכנות הצפנה. בחלק מהתוכנות מהסוג הזה, ההיסטוריה של הקלטים הקודמים משפיעה על עיבוד הקלט הנוכחי. כלומר, ניתן למדל תוכנות אלה כמכונות מצבים. תוכנות כאלה מתוארות כ-stateful, והמשתנים אשר מכילים ערכים מהעיבוד שבוצע בשלב הקודם מהווים את "המצב" של התוכנה. קיימות תוכנות סדרתיות אחרות שהפלט שלהן תלוי רק בקלט הנוכחי; תוכנות כאלה נקראות stateless.

stateful לעומת stateless

תוכנות מחשב אשר שומרות מידע אודות המצב נקראות stateful (סטייטפוּל), ואילו תוכנות הפועלות רק על סמך הקלט הנוכחי נקראות stateless (סטייטלֵס). כמו כן, כאשר מערכת מידע או פרוטוקול תקשורת מסתמכים על מצבים, הם מתוארים כ-stateful, וכאלה שאינם מסתמכים על מצבים נקראים stateless.

לדוגמה, פרוטוקול ה-HTTP הוא stateless protocol. פרוטוקול זה אינו מספק שום אמצעי לאחסון מידע מהמשתמש בין בקשות. הפרוטוקול מטפל בכל בקשה כטרנזקציה נפרדת, שאינה קשורה לשום בקשה קודמת, כך שהתקשורת מורכבת מזוגות נפרדים של בקשות ותגובות.

{{bottomLinkPreText}} {{bottomLinkText}}
מצב (מדעי המחשב)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.