ОС Windows XP

Автор работы: Пользователь скрыл имя, 08 Февраля 2013 в 20:48, курсовая работа

Описание работы

Windows XP (кодовое название при разработке – Whistler; внутренняя версия – Windows NT 5.1) – операционная система (ОС) семейства Windows NT корпорации Microsoft. Она была выпущена 25 октября 2001 года и является развитием Windows 2000 Professional. Название XP происходит от англ. eXPerience (опыт).
В отличие от предыдущей системы Windows 2000, которая поставлялась как в серверном, так и в клиентском вариантах, Windows XP является исключительно клиентской системой. Её серверным аналогом являетсяWindows Server 2003.

Содержание работы

Введение 4
Общая структура операционной системы Windows XP 6
Ядро 15
Процессы 22
Потоки 26
Уровни приоритета 29
Выводы 32
Часть 2. Задача о спящем парикмахере 34
Список использованной литературы 38

Файлы: 1 файл

Копия курсовая.doc

— 548.50 Кб (Скачать файл)

Данные ядра всегда находятся  в оперативной памяти и никогда не выгружаются на диск, как это происходит с пользовательскими приложениями.

Рссмотрели процессы и потоки. Узнали что процесс состоит  хотя бы из одного потока. В Windows XP каждому процессу соответствует адресное пространство и одиночный управляющий поток. У процесса есть адресное пространство, содержащее текст программы и данные, а также другие ресурсы. Ресурсами являются открытые файлы, дочерние процессы, необработанные аварийные сообщения, обобработчики сигналов, учетная информация и многое другое. Гораздо проще управлять ресурсами, объединив их в форме процесса.

Рссмотрели приоритеты Windows XP узнали что предусмотрено 32 уровня приоритета – от 0 до 31 рис. 10. Эти значения группируются так:

  • шестнадцать уровней реального времени (16-31);
  • пятнадцать варьируемых (динамических) уровней (1 – 15);
  • один системный уровень (0), зарезервированный для потока обнуления страниц (zero page thread).

И на последок по данным веб-аналитики от W3Schools с сентября 2003 по июль 2011 года Windows XP была самой используемой операционной системой для доступа к сети Интернет в мире. По состоянию на август 2012 года, Windows XP находится на втором месте с долей 24,8 %. Максимум этого значения составлял 76,1 % и был достигнут в январе 2007 года.

 

Часть 2. Задача о спящем парикмахере

Представим парикмахерскую, состоящую из кресла и зала ожидания. Посетитель может войти в зал  ожидания только в случае наличия  в нем свободных мест. Если кресло парикмахера свободно, посетитель может его занять.

Если длительное время в парикмахерской нет посетителей, парикмахер засыпает в кресле.

Требуется решить задачу таким образом, чтобы исключить попадание "лишних" посетителей в зал ожидания и засыпания парикмахера в момент нахождения посетителя в кресле.

Решение задачи при помощи сетей Петри представлено на рисунке 8:

Рис. 8. Решение задачи о спящем парикмахере при помощи сети Петри

Решение на С++:

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int Postrizhka = 0;   // радномное временя  на стрижку 1 посетителя в секундах

int Kresla = 0; // количество кресел

 

bool strizhka = false;

int w = 0;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

    // настройки при запуске

    Timer1->Enabled = false;

    Label1->Caption = "Ушел домой";

    Timer1->Interval = 1000;

    Timer1->Enabled = false;

    Memo1->Lines->Clear();

}

//---------------------------------------------------------------------------

void Logs(AnsiString text) // логирование

{

    Form1->Memo1->Lines->Add("[" + Time() + "] -> " + text);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

    Postrizhka = ScrollBar1->Position;

    Kresla = ScrollBar2->Position;

 

    if(rand()%10 >= 5) // если больше или равен 5 то приходит посетитель

    {

        Logs("Посетитель  входит в парикмахерскую");

        if(Label2->Caption.ToInt() < Kresla) // есть свободное место

        {

            if(rand()%10 >= 5) // посетитель выберает ждать ему или уйти

            {

                Logs("Посетитель решил подождать  в зале ожидания");

                Label2->Caption = Label2->Caption.ToInt() + 1;

            }

            else

            {

                Logs("Посетитель решил не стоять в очереди");

            }

        }

        else // все места  заняты

        {

            Logs("Посететелю нехватило место,  и он ушел недовольный");

        }

    }

    // действия парикмахера

    if(Label2->Caption.ToInt() == 0) // посетителей  нет

    {

        Label1->Caption = "Спит";

    }

    else  // посетители есть

    {

        Label1->Caption = "Работает";

        if(strizhka == false) // начинаем стрижку

        {

            strizhka = true;

            w = (rand()%Postrizhka) + 1; // рандомное время на стрижку 1го посетителя

            Logs("Парикмахер начинает стрижку");

        }

        else

        {

            if((w--) == 0)

            {

                strizhka = false;

                Label2->Caption = Label2->Caption - 1;

                Logs("Парикмахер закончил стрижку! Клиент расплатился и ушел");

            }

        }

    }

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    if(Timer1->Enabled)

    {

        Timer1->Enabled = false;

        Label1->Caption = "Ушел домой";

        Label2->Caption = 0;

        Button1->Caption = "Открыть парикмахерскую";

    }

    else

    {

        Button1->Caption = "Закрыть парикмахерскую";

        Label2->Caption = 0;

        Timer1->Enabled = true;

    }

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::ScrollBar1Change(TObject *Sender)

{

    Label5->Caption = IntToStr(ScrollBar1->Position);

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::ScrollBar2Change(TObject *Sender)

{

    Label6->Caption = IntToStr(ScrollBar2->Position);

}

//---------------------------------------------------------------------------

 

Список использованной литературы

  1. Э. Таненбаум. Современные операционные системы. 2-ое изд. –СПб.: Питер, 2002. – 1040 с.
  2. Э.  Таненбаум,  А.  Вудхалл.  Операционные системы:  разработка и реализация. Классика CS. –СПб.: Питер, 2006. –576 с.
  3. М.  Руссинович,  Д.  Соломон.  Внутреннее устройство Microsoft Windows: Windows  Server 2003, Windows XP, Windows 2000.  Мастер-класс. /  Пер.  с англ. -4-е изд. –М.: Издательско-торговый дом «Русская редакция»; СПб.: Питер; 2005. – 992 с.
  4. Microsoft Development Network. URL: http://msdn.co (дата обращения: 04.11.2012)
  5. Ф-Центр Архитектура UNIX и Windows URL: http://www.fcenter.ru/online.shtml?articles/software/os/6773 (дата обращения: 04.11.2012)
  6. Технологии вокруг нас, архитектура windows NT URL: http://www.worldodtech.ru/technos-52-1.html (дата обращения: 04.11.2012)
  7. Дальневосточного государственного университета путей сообщения URL: http://edu.dvgups.ru/METDOC/ITS/STRPRO/ASY/METOD/UP/frame/2_5.htm#_ftn1 (дата обращения: 04.11.2012)
  8. Windows XP справочник URL: http://www.serviscomp.msk.ru/ (дата обращения: 04.11.2012)
  9. Потомки C# – пбесплатные электронные книги URL: http://www.albahari.com/threading/ (дата обращения: 04.11.2012)
  10. Операционные системы Microsoft URL: http://lazurite.ru/microsoft-windows/operatsionnie-sistemi-microsoft (дата обращения: 04.11.2012)



Информация о работе ОС Windows XP