шпаргалка

b.Incarc,sist si.proc

[ Назад ]
Mгre?te regiunea la mгrimea potrivitг ?i copiazг codul (cea mai scurtг descriere) din spaюiul de adrese al nucleului оn noua regiune: acest cod formeazг acum contextul la nivel de utilizator al procesului 1. Procesul 1 seteazг apoi contextul registrului utilizator salvat, se оntoarce din modul nucleu оn modul utilizator ?i executг codul care fusese copiat din nucleu. Procesul 1 este un proces la nivel utilizator care este оn opoziюie cu procesul 0, care este un proces la nivel nucleu ?i care se executг оn modul nucleu. Codul pentru procesul 1, copiat din nucleu, constг din apelul funcюiei sistem exec pentru execuюia programului "/etc/init". Procesul 1 apeleazг exec ?i executг programul оn mod normal. Procesul 1 este оn mod normal numit init, pentru cг el este rгspunzгtor pentru iniюializarea noilor procese.
De ce nucleul copiazг codul apelului sistem exec оn spaюiul de adrese utilizator al procesului 1? Ar putea sг invoce versiunea internг a exec-lui direct din nucleu, dar asta ar fi mai complicat decвt implementarea deja descrisг.
--algoritmul start /* algoritm pentru boot-area sistemului */
^intrгri: niciuna
^ie?iri: niciuna
{
^iniюializarea tuturor structurilor de date ale sistemului;
^pseudo-montarea rгdгcinii;
^pregгtirea mediului pentru procesul 0;
^apel fork pentru procesul 1:
{
/* procesul 1 */
^alocг regiune;
^ata?eazг regiunea la spaюiul iniюial de adrese;
^cre?te mгrimea regiunii оn concordanюг cu codul ^care va fi copiat оn ea;
^copiazг codul din spaюiul nucleu pentru a iniюializa spaюiul utilizator pentru a executa init;
^schimbг modul din modul nucleu оn modul utilizator;
/* init niciodatг nu va fi aici... ca rezultat al modului schimbat оnainte, init executг /etc/init ?i devine un proces utilizator "normal" care respectг apelurile sistem */
}
/* procesul 0 continuг aici */
^apel fork pentru procesele nucleu;
/* procesul 0 invocг swapper-ul pentru a face management-ul alocгrii spaюiului de adrese pentru proces оn memoria proncipalг ?i a dispozitivelor de swap. Acesta este un ciclu infinit; procesul 0 este оn mod obo?nuit оn a?teptare оn buclг, dacг nu este ceva de fгcut pentru el */
^executг codul pentru algoritmul swapper;
}

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |