Процестер күйлері: компьютер жүйелеріндегі процестердің түрлі жағдайлары, ядроға көрінбейтін күйлер, есте сақтауда сақталуы. Операциялық жүйе түсінігі.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Көп тапсырмалы компьютерлік жүйеде процестер әртүрлі күйлерде болуы мүмкін. Операциялық жүйе ядросы бұл күйлерді осылай танымауы мүмкін. Дегенмен, процестерді түсіну үшін олар пайдалы түсінік береді.
In a multitasking computer system, processes may occupy a variety of states. These distinct states may not be recognized as such by the operating system kernel. However, they are a useful abstraction for the understanding of processes.
Негізгі процестер күйлері
Барлық түрдегі компьютерлік жүйелерде келесідей типтік процестер күйлері болуы мүмкін. Осы күйлердің көпшілігінде процестер негізгі жадта "сақталады".
The following typical process states are possible on computer systems of all kinds. In most of these states, processes are "stored" on main memory.
Құрылған
Процесс алғаш рет құрылғанда, ол "жасалған" немесе "жаңа" күйге өтеді. Осы күйде процесс "дайын" күйге қабылдануын күтеді. Қабылдау ұзақ мерзімді немесе қабылдау жоспарлаушысы (scheduler) арқылы мақұлданады немесе кейінге шегеріледі. Көптеген десктоп компьютер жүйелерінде қабылдау әдетте автоматты түрде мақұлданады. Дегенмен, нақты уақыт операциялық жүйелерінде қабылдау кешіктірілуі мүмкін. Нақты уақыт жүйесінде "дайын" күйге тым көп процестің қабылдануы жүйенің ресурстарын артық жүктеуге және оларға күшті талап қоюға алып келуі мүмкін, нәтижесінде процестердің мерзімдерін сақтау мүмкін болмайды.
When a process is first created, it occupies the "created" or "new" state. In this state, the process awaits admission to the "ready" state. Admission will be approved or delayed by a long term, or admission, scheduler. Typically in most desktop computer systems, this admission will be approved automatically. However, for real time operating systems this admission may be delayed. In a realtime system, admitting too many processes to the "ready" state may lead to oversaturation and overcontention of the system's resources, leading to an inability to meet process deadlines.
Дайындық
"Дайын" немесе "күту" күйіндегі процесс негізгі жадқа жүктелген және CPU-да орындалуын күтуде (диспетчер немесе қысқа мерзімді жоспарлаушы оны CPU-ға ауыстырып қояды). Жүйе жұмыс істеп тұрған кез келген сәтте көптеген "дайын" процестер болуы мүмкін. Мысалы, бір процессорлы жүйеде бір уақытта тек бір процесс ғана орындала алады, ал қалған "параллель орындалатын" процестер орындалу кезегін күтеді. Компьютерлік жоспарлауда дайын кезек немесе орындалу кезектері қолданылады. Қазіргі заманғы компьютерлер бір уақытта көптеген бағдарламаларды немесе процестерді іске асыруға қабілетті. Дегенмен, CPU бір уақытта тек бір процесспен ғана жұмыс істей алады. CPU-ға дайын процестер "дайын" процестер кезегінде сақталады. Қатты дискіден ақпаратты жүктеу немесе интернет қосылысын күту сияқты белгілі бір оқиғаның орын алуын күтіп тұрған басқа процестер дайын кезекке енбейді.
A "ready" or "waiting" process has been loaded into main memory and is awaiting execution on a CPU (to be context switched onto the CPU by the dispatcher, or short term scheduler). There may be many "ready" processes at any one point of the system's execution—for example, in a one processor system, only one process can be executing at any one time, and all other "concurrently executing" processes will be waiting for execution. A ready queue or run queue is used in computer scheduling. Modern computers are capable of running many different programs or processes at the same time. However, the CPU is only capable of handling one process at a time. Processes that are ready for the CPU are kept in a queue for "ready" processes. Other processes that are waiting for an event to occur, such as loading information from a hard drive or waiting on an internet connection, are not in the ready queue.
Жүгіру
Процесс орындалуға таңдалғанда, орындалу күйіне көшеді. Процесс нұсқаулары жүйенің бір CPU (немесе ядросы) арқылы орындалады. Әрбір CPU немесе ядрода ең көп дегенде бір процесс орындалуы мүмкін. Процесс ядролық режимде немесе пайдаланушы режимінде екі режимнің бірінде орындалуы мүмкін.
A process moves into the running state when it is chosen for execution. The process's instructions are executed by one of the CPUs (or cores) of the system. There is at most one running process per CPU or core. A process can run in either of the two modes, namely kernel mode or user mode.
Жедел режім
Ядролық режимдегі процестер ядролық және пайдаланушы жад кеңістіктеріне де қол жеткізе алады. Ядролық режим аппараттық құралдарға шектеусіз қол жеткізуді қамтамасыз етеді, соның ішінде ерекше құқықтармен орындалатын нұсқауларды іске қосуға мүмкіндік береді. Көптеген нұсқаулар (мысалы, кіріс-шығыс нұсқаулары және тоқтату нұсқаулары) ерекше құқықтарға ие және тек ядролық режимде ғана орындалуы мүмкін. Пайдаланушы бағдарламасынан жүйелік шақыру жасалғанда ядролық режимге ауысу жүзеге асырылады.
Processes in kernel mode can access both: kernel and user addresses. Kernel mode allows unrestricted access to hardware including execution of privileged instructions. Various instructions (such as I/O instructions and halt instructions) are privileged and can be executed only in kernel mode. A system call from a user program leads to a switch to kernel mode.
Бұғатталған
Процесс сыртқы жағдайдың өзгеруі немесе оқиғаның болуысыз жалғаса алмай қалғанда тоқтатылған күйге көшеді. Мысалы, егер принтер қолжетімді болмаса, I/O құрылғысына (мысалы, принтерге) шақыру кезінде процесс тоқтатылуы мүмкін. Процестер сондай-ақ пайдаланушыдан деректерді енгізуді қажет еткенде немесе атомдық түрде орындалуы тиіс маңызды бөлімге қол жеткізуді қажет еткенде де тоқтатылады. Мұндай маңызды бөлімдер семафор немесе мьютекс сияқты синхрондау объектісі арқылы қорғалады.
A process transitions to a blocked state when it cannot carry on without an external change in state or event occurring. For example, a process may block on a call to an I/O device such as a printer, if the printer is not available. Processes also commonly block when they require user input, or require access to a critical section which must be executed atomically. Such critical sections are protected using a synchronization object such as a semaphore or mutex.
Аяқталды
Процесс "жұмыс істеп тұрған" күйінен орындалуын аяқтау арқылы немесе әдейі тоқтатылуы мүмкін. Екі жағдайда да процесс "аяқталған" күйіне өтеді. Негізгі бағдарлама енді орындалмайды, бірақ процесс оның аталық процессі оның шығу статусын оқу үшін wait жүйелік шақыруын (system call) шақырғанға дейін процесс кестесінде "зомби" процесс ретінде қалады. Осы шақырудан кейін процесс кестесінен алынып тасталады, сонымен процесс өмірінің аяқталады. Егер аталық процесс wait шақыруын жасамаса, процесс кестесіндегі жазба (нақтырақ айтқанда процесс идентификаторы немесе PID) босқа пайдаланыла береді, бұл ресурстардың ысырап болуына (resource leak) әкеледі.
A process may be terminated, either from the "running" state by completing its execution or by explicitly being killed. In either of these cases, the process moves to the "terminated" state. The underlying program is no longer executing, but the process remains in the process table as a zombie process until its parent process calls the wait system call to read its exit status, at which point the process is removed from the process table, finally ending the process's lifetime. If the parent fails to call wait, this continues to consume the process table entry (concretely the process identifier or PID), and causes a resource leak.
Қосымша процестер күйлері
Виртуалды жадты қолдайтын жүйелерде процестер үшін екі қосымша күй бар. Бұл екі күйде де процестер екінші жадқа (әдетте қатты дискіге) "сақталады".
Two additional states are available for processes in systems that support virtual memory. In both of these states, processes are "stored" on secondary memory (typically a hard disk).
Алмастырып , күту
(Сонымен қатар тоқтап тұрған және күтіп отырған деп те аталады.) Виртуалды жадты қолдайтын жүйелерде процесс жадтан шығарылып, яғни негізгі жадтан алынып, жоспарлаушы (scheduler) оны сыртқы жадқа орналастыруы мүмкін. Одан процесс күту күйіне қайта оралуы мүмкін.
(Also called suspended and waiting.) In systems that support virtual memory, a process may be swapped out, that is, removed from main memory and placed on external storage by the scheduler. From here the process may be swapped back into the waiting state.
Блокталған және ауыстырылған
(Тоқтатылған және бұғатталған деп те аталады.) Бұғатталған процестер де жадтан шығарылуы мүмкін. Ондай жағдайда процесс бір мезгілде жадтан шығарылып, бұғатталады, және сол жағдайларда, жадтан шығарылған және күтіп тұрған процесс сияқты, қайтадан жадқа кіргізілуі мүмкін (бірақ бұл жағдайда процесс бұғатталған күйге өтеді және ресурстың босатылуын күтуі мүмкін).
(Also called suspended and blocked.) Processes that are blocked may also be swapped out. In this event the process is both swapped out and blocked, and may be swapped back in again under the same circumstances as a swapped out and waiting process (although in this case, the process will move to the blocked state, and may still be waiting for a resource to become available).