ОС 2

1,021 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,021
On SlideShare
0
From Embeds
0
Number of Embeds
56
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Intel Pentium D 940 Extreme Edition – Dual hyperthreaded core
  • The best part of computer science: Suppose you don’t know anything today, wait a few years and no one will know anything!
  • OS first appeared as a subroutine “library” shared by all users. Library: pull card decks from wall.
  • Multiprogramming: 2 jobs (1 takes 10 hrs, the other 10 mins). Don’t have to wait 10 hrs! www.multicians.org lists 1777 people who “contributed to Multics”. Probably 30-40 core developers.
  • Compare to 500Gb 2.5” disks, 80 Gbyte 1.8” disks
  • Computers are friendly things: 1 terminal, feed me. Add another terminal, feed me. Can you keep doing this? NO! Eventually fall off a cliff (add one more user, computer slows down by a factor of 1000)
  • No, Feature creep. PC made OS a subroutine all over again. But then realized even single users need memory protection, multiprogramming, etc. Same is true of PDAs and phones
  • Why do we need distributed systems? Resource sharing (printers, Internet connections,…) and info sharing (files, email, IM, …)
  • Of the enormous variety of CITRIS projects going on at Berkeley, I will present one set that is tied together by this picture: the design, construction and use of MEMS devices, the sensor networks containing them, and making the information from these networks available to widely distributed users as scalable, reliable and secure services. The name we give to such an integrated system is a Societal Scale Information System, a name meant to evoke its scale – enormous - and purpose – benefiting people and the economy. I will leave the details of all the specific applications that Ruzena mentioned, be it to energy efficiency or education or disaster response the social sciences, and indeed most details, to later talks and posters. Some topics were covered in depth the last time we met, so I will only give you highlights of progress since then, and provide pointers for further information. My main goal is to show you the breadth of work, and give you a vision of how it all ties together.
  • How many people have written a 1K program? 15 pages How many people have written a 10K program? 150 pages
  • ОС 2

    1. 1. Операционные системы и системное программирование Лекция 2 История в 5 фазах и структура ОС
    2. 2. Средство ОС : абстракция виртуальной машины <ul><li>Задача проектирования софта : </li></ul><ul><ul><li>создание “ переходников ” железо / софт  что программистам надо / необходимо </li></ul></ul><ul><ul><li>оптимизация удобства использования, защищенности , надежности и т.д. </li></ul></ul><ul><li>Для любой части ОС ( файловая система , виртуальная память , сеть ): </li></ul><ul><ul><li>Какой физический интерфейс ? ( реальность ) </li></ul></ul><ul><ul><li>Какой программный интерфейс ? ( улучшенная абстракция ) </li></ul></ul>Приложение ОС Оборудование интерфейс физ. машины интерфейс вирт. машины
    3. 3. Цели на сегодня <ul><li>Закончим пример с защитой </li></ul><ul><li>История операционных систем </li></ul><ul><ul><li>история ресурсозависимых выборов </li></ul></ul><ul><li>Структуры ОС </li></ul><ul><li>Организация ОС </li></ul><ul><li>Абстракции и слои </li></ul>
    4. 4. Пример : Защита процессов друг от друга <ul><li>Цель : запустить несколько приложений таким способом, чтобы защитить их друг от друга </li></ul><ul><li>Задачи : </li></ul><ul><ul><li>Оградить пользователя от краха системы </li></ul></ul><ul><ul><li>Оградить пользовательские программы от влияния других программ </li></ul></ul><ul><ul><li>[ Оградить части ОС от влияния на другие части ОС ?] </li></ul></ul><ul><li>Механизмы (не все) : </li></ul><ul><ul><li>Преобразование адреса </li></ul></ul><ul><ul><li>Dual Mode Operation </li></ul></ul><ul><li>Простая политика : </li></ul><ul><ul><li>Программам не разрешено читать / изменять память других программ и ОС </li></ul></ul>
    5. 5. Преобразование адресов ( Address Translation ) <ul><li>Адресное пространство : </li></ul><ul><ul><li>Группа адресов памяти для чего-либо используемая </li></ul></ul><ul><ul><li>Все процессы (программы) и ядро имеют потенциально различные адресные пространства . </li></ul></ul><ul><li>Преобразование адресов : </li></ul><ul><ul><li>Преобразование виртуальных адресов ( используемых ЦП ) в физические адреса (памяти) </li></ul></ul><ul><ul><li>Отображение ( mapping ) часто осуществляется “ в железе ” с помощью Memory Management Unit (MMU) </li></ul></ul>ЦП MMU Виртуальные адреса Физические адреса
    6. 6. Пример преобразования адресов Prog 1 Виртуальное пространство адресов 1 Prog 2 Виртуальное пространство адресов 2 Карта Преобразований 1 Карта Преобразований 2 Физическое пространство адресов Код Данные Куча Стек Код Данные Куча Стек Данные 2 Стек 1 Куча 1 ОС куча & стеки Код 1 Стек 2 Данные 1 Куча 2 Код 2 ОС код ОС данные
    7. 7. Dual Mode Operation <ul><li>Железо предоставляет минимум два режима : </li></ul><ul><ul><li>“ Ядро ” ( или “ защищенный ”) </li></ul></ul><ul><ul><li>“ Пользователь ” : нормальные программы </li></ul></ul><ul><ul><li>Некоторые инструкции запрещены в пользовательском режиме : </li></ul></ul><ul><ul><li>Пример : изменение адресов страниц памяти </li></ul></ul><ul><ul><ul><li>При попытке  эксепшен </li></ul></ul></ul><ul><li>Делегирование из пользовательского режима : </li></ul><ul><ul><li>Системные вызовы , прерывания… </li></ul></ul>
    8. 8. Структура UNIX Пользователь-ский режим Режим ядра Железо Applications Standard Libs
    9. 9. Закон Мура заставляет ОС меняться <ul><li>Типичные компьютеры 1981 vs 2006 </li></ul>0 , 2 $4,000 $25,000  0 , 1 <ul><li>1 </li></ul>10s 2 32 16 110,000 1 Гб / с 9600 б / с 100,000 1 Тб 10 Мб 32,768 4 Гб 128 Кб 1,280 6—40 3200x4 0 , 25—0 , 5 10 3—10 Множит. 2006 1981 Цена # человек / машина # разрядность Скорость сети Емкость диска DRAM ЦП МГц , Цикл / инстр
    10. 10. Следствия закона Мура <ul><li>Ничего подобного в других отраслях бизнеса </li></ul><ul><li>Транспорт за последние 200 лет : </li></ul><ul><ul><li>2 порядка, от лощадиной повозки (15 км / ч ) до Конкорда ( 1 5 00 км / ч) </li></ul></ul><ul><ul><li>Компьютеры делают то же каждое десятилетие ( по крайней мере до 2002)! </li></ul></ul><ul><li>Что это означает для нас ? </li></ul><ul><ul><li>Технологии меняются во времени чтобы адаптироваться к изменениям </li></ul></ul><ul><li>Будем делать акцент на принципах </li></ul><ul><ul><li>Ключевые концепты, лежащие в основе компьютерных систем </li></ul></ul><ul><ul><li>Менее важно то, что может измениться в ближайшие несколько лет … </li></ul></ul><ul><li>Рассмотрим изменения в отношении $/ машину, и его влияние на работу ОС. </li></ul>
    11. 11. Истоки ENIAC: (1945—1955) <ul><li>“ Машина созданная др. Экертом и Моучли была монструозной. К завершению она заполняла целую комнату, весила тридцать тонн и потребляла 200 кВатт энергии. ” </li></ul><ul><li>http://ei.cs.vt.edu/~history/ENIAC.Richey.HTML </li></ul>
    12. 12. Фаза 1 (1948—1970) Железо дорогое , люди дешевые <ul><li>Когда компьютеры стоят миллионы $, оптимизация направлена на более эффективное использование железа ! </li></ul><ul><ul><li>Недостаток во взаимодействии пользователя и компьютера </li></ul></ul><ul><li>Пользователь за консолью : одновременно один </li></ul><ul><li>Монитор пакетного режима : загрузка программы , запуск , печать </li></ul><ul><li>Оптимизация для более эффективного использования железа </li></ul><ul><ul><li>Когда пользователь думает , компьютер бездельничает  ПЛОХО ! </li></ul></ul><ul><li>Нет защиты : что если в пакетной программе ошибка ? </li></ul>
    13. 13. Воспоминания о памяти (1950s & 60s) <ul><li>Такая память ( core memory ) сохраняет данные намагничивая металлические кольца </li></ul><ul><ul><li>Металлические “ ядра ” обматывались двумерной сеткой проводов </li></ul></ul><ul><ul><li>Появление термина “Dump Core” </li></ul></ul><ul><ul><li>Говорят, что IBM консультировала компанию Life Saver  </li></ul></ul><ul><li>http://www.columbia.edu/acis/history/core.html </li></ul>Первая феррито-магнитная память , из IBM 405 Алфавитно-счетная машина .
    14. 14. Фаза 1½ ( конец 60 хх / начало 70 хх ) <ul><li>Каналы данных , Прерывания : покрывает ввод / вывод и вычисления </li></ul><ul><ul><li>DMA – прямой доступ к памяти для устройств I/O </li></ul></ul><ul><ul><li>I/O могут быть совершенно асинхронными </li></ul></ul><ul><li>Многозадачность : несколько программ работают одновременно </li></ul><ul><ul><li>Небольшие задачи не тормозятся большими </li></ul></ul><ul><ul><li>Сближение I/O и CPU </li></ul></ul><ul><ul><li>Нужна защита памяти между программами и / или ОС </li></ul></ul><ul><li>Сложность выходит из-под контроля : </li></ul><ul><ul><li>Multics: анансирован в 1963, запущен в 1969 </li></ul></ul><ul><ul><ul><li>1777 людей “ внесли вклад в Multics” (30-40 разр. ядра ) </li></ul></ul></ul><ul><ul><li>OS 360: выпущена с 1000 известных багов (APARs) </li></ul></ul><ul><ul><ul><li>“ Anomalous Program Activity Report” (отчет об аномальных действиях программы) </li></ul></ul></ul><ul><li>ОС становится разделом науки : </li></ul><ul><ul><li>Что делать со сложностью ??? </li></ul></ul><ul><ul><li>UNIX базируется на Multics, но чрезвычайно упрощенный </li></ul></ul>
    15. 15. Система Multics ( прибл. 1976) <ul><li>Открыта наружная дверь , прибл. 1976: </li></ul><ul><ul><li>“ Мы обычно запускаем машину с открытой дверью, чтобы операторы могли видеть дисплей регистра AQ, по которому можно судить о загрузке машины , и чтобы легко добираться до кнопки EXECUTE, которую оператор нажимает в случае зависания машины .” </li></ul></ul><ul><li>http://www.multicians.org/multics-stories.html </li></ul>
    16. 16. История ранних дисков 1973: 1 , 7 МБит / кв.дьюм 140 Мб 1979: 7. 7 МБит / кв.дьюм 2,300 Мб Контраст : Seagate 1 Тб , 164 Гб / д 2 в 3½ корпусе , 4 блина
    17. 17. Фаза 2 (1970 – 1985) Железо дешевеет , люди дорожают <ul><li>Компьютеры доступны за десятки тысяч долларов, а не миллионы </li></ul><ul><li>Технологии ОС дозрели / стабилизировались </li></ul><ul><li>Интерактивное разделение времени использования : </li></ul><ul><ul><li>Использование дешевых терминалов (~$1000) , чтобы пользователи взаимодействовали с системой одновременно </li></ul></ul><ul><ul><li>Жертвуем временем CPU для уменьшения времени отклика </li></ul></ul><ul><ul><li>Пользователи могут выполнять различные действия одновременно </li></ul></ul><ul><li>Проблема : биения </li></ul><ul><ul><li>Производительность от загрузки </li></ul></ul><ul><ul><li>зависит нелинейно </li></ul></ul><ul><ul><li>Биения вызываются многими </li></ul></ul><ul><ul><li>факторами, включая : </li></ul></ul><ul><ul><ul><li>Своппинг , очереди </li></ul></ul></ul>Пользователи Время отклика
    18. 18. ARPANet (1968-1970) <ul><li>Поль Барен </li></ul><ul><ul><li>RAND Corp, ранние 1960 -е </li></ul></ul><ul><ul><li>Коммуникационные сети, которые переживут массированную атаку врага </li></ul></ul><ul><li>ARPANet: “Resource Sharing Computer Networks” </li></ul><ul><ul><li>2 Сентябрь 1969: UCLA первый узел ARPANet </li></ul></ul><ul><ul><li>Декабрь 1969: 4 узла, соединенных 56 кбит /c каналами </li></ul></ul><ul><ul><li>1971: Первый e-mail </li></ul></ul><ul><ul><li>1970’s: <100 компьютеров </li></ul></ul><ul><ul><li>http://www.cnn.com/2004/TECH/internet/08/29/internet.birthday.ap/index.html </li></ul></ul>SRI 940 UCLA Sigma 7 UCSB IBM 360 Utah PDP 10 IMPs BBN team создала интерфейс процессинга сообщений
    19. 20. ARPANet превратился в Internet <ul><li>Первый спам ( E-mail ) : 1 May 1978 12:33 EDT </li></ul><ul><li>80-83: TCP/IP, DNS; ARPANET и MILNET разделились </li></ul><ul><li>85-86: NSF построила NSFNET на соединении 6 Суперкомпьютерных центорв , 1 , 5 Мб / с , и 10 000 компьютеров </li></ul><ul><li>87-90: соединение региональных сетей , NSI (NASA), ESNet (DOE), DARTnet, TWBNet (DARPA), 100 000 компьютеров </li></ul>SATNet: Спутниковая сеть PRNet: Радио сеть ARPANet SATNet PRNet TCP/IP NSFNet Deregulation & Commercialization 1965 1975 1985 1995 2005 WWW ISP ASP AIP
    20. 21. Что такое коммуникационную сеть ? <ul><li>Сеть предоставляет базовый сервис : перемещение информации </li></ul><ul><ul><li>Птицы , огонь , курьер , машина , телеграф , телефон , Интернет </li></ul></ul><ul><ul><li>Другой пример , транспортный сервис : перемещение объектов </li></ul></ul><ul><ul><ul><li>Лошадь , поезд , самолет ... </li></ul></ul></ul><ul><li>Как различать разные типы сетей ? </li></ul><ul><ul><li>По сервисам, которые они предоставляют </li></ul></ul><ul><li>Как различать сервисы ? </li></ul><ul><ul><li>задержка </li></ul></ul><ul><ul><li>ширина канала </li></ul></ul><ul><ul><li>процент потерь </li></ul></ul><ul><ul><li>кол-во конечных узлов </li></ul></ul><ul><ul><li>интерфейс сервиса (how to invoke the service?) </li></ul></ul><ul><ul><li>другие </li></ul></ul><ul><ul><ul><li>Надежность , юникаст vs. мультикаст , реальное время ... </li></ul></ul></ul>
    21. 22. Что такое коммуникационную сеть ? <ul><li>Переносчик : электрон , фонон </li></ul><ul><li>Компоненты сетей : </li></ul><ul><ul><li>Соединения – переносят биты из одного места в другое : оптоволокно , медь , спутник , … </li></ul></ul><ul><ul><li>Интерфейсы – присоединенные устройства </li></ul></ul><ul><ul><li>Свитчи / коммутаторы – межсоединения : электроника / оптика </li></ul></ul><ul><ul><li>Хосты – конечные точки : ПК , КПК , сотовые телефоны , тостеры  </li></ul></ul><ul><li>Протоколы – правила, управляющие взаимодействием между узлами </li></ul><ul><ul><li>TCP/IP, ATM, MPLS, SONET, Ethernet, X.25 </li></ul></ul><ul><li>Приложения : Web -браузер , X Windows, FTP, ... </li></ul>
    22. 23. Компоненты сетей ( примеры ) Волокно Коаксил Соединения Интерфейсы Свитчи маршрутизаторы Ethernet -карта беспроводная карта Маршру- тизатор Телефонный свитч
    23. 24. Типы сетей <ul><li>Географическое расстояние </li></ul><ul><ul><li>Локальные сети (LAN): Ethernet, Token ring, FDDI </li></ul></ul><ul><ul><li>Сети городского масштаба (MAN): DQDB, SMDS </li></ul></ul><ul><ul><li>Крупные сети (WAN): X.25, ATM, frame relay </li></ul></ul><ul><ul><li>Осторожно : LAN, MAN, WAN могут означать разные вещи </li></ul></ul><ul><ul><ul><li>Сервисы , сетевые технологии , сети </li></ul></ul></ul><ul><li>Тип информации </li></ul><ul><ul><li>Сети данных vs. телекоммуникационные сети </li></ul></ul><ul><li>Приложения </li></ul><ul><ul><li>Сети специального назначения : банковская сеть , сеть кредитных карт , телефония </li></ul></ul><ul><ul><li>Сеть общего назначения : Интернет </li></ul></ul>
    24. 25. Фаза 3 (1981— ) Железо очень дешево , люди очень дороги <ul><li>Копьютер -- $1K, программист стоит $100K в год </li></ul><ul><ul><li>Если вы можете повысить эффективность сотрудника на 1% дав ему компьютер, это экономически оправдано ! </li></ul></ul><ul><ul><li>Использование компьютеров для повышения эффективности людей </li></ul></ul><ul><li>Персональные вычисления : </li></ul><ul><ul><li>Компьютеры дешевы – ПК у всех </li></ul></ul><ul><li>Начальная ограниченность ресурсов : </li></ul><ul><ul><li>ОС была библиотекой подпрограмм </li></ul></ul><ul><ul><li>Выполняется одно приложение (MSDOS, CP/M, …) </li></ul></ul><ul><li>В результате ПК стали мощными : </li></ul><ul><ul><li>ОС становится сложной “ большой ” ОС </li></ul></ul><ul><ul><li>многозадачность , защита памяти , и т.д. (NT,OS/2) </li></ul></ul><ul><li>Вопрос : а не нужны ли ОС, если железо дешевое ? </li></ul>
    25. 26. Фаза 3 Графический интерфейс пользователя <ul><li>Xerox Star: 1981 </li></ul><ul><ul><li>Изначально исследовательский проект (Alto) </li></ul></ul><ul><ul><li>Первая “ мышь ” и “ окно ” </li></ul></ul><ul><li>Apple Lisa/Machintosh: 1984 </li></ul><ul><ul><li>“ Смотри и чувствуй ” 1988 </li></ul></ul><ul><li>Microsoft Windows: </li></ul><ul><ul><li>Win 1.0 (1985) </li></ul></ul><ul><ul><li>Win 3.1 (1990) </li></ul></ul><ul><ul><li>Win 95 (1995) </li></ul></ul><ul><ul><li>Win NT (1993) </li></ul></ul><ul><ul><li>Win 2000 (2000) </li></ul></ul><ul><ul><li>Win XP (2001) </li></ul></ul><ul><ul><li>Win Vista (2007) </li></ul></ul>Xerox Star Windows 3.1 Простой уровень HAL/ Защита нет HAL/ Полн. защита
    26. 27. Фаза 4 (1988—): Распределенные системы <ul><li>Локальная сеть (Local Area Networking) </li></ul><ul><ul><li>Машины разделяют общие ресурсы </li></ul></ul><ul><ul><li>Принтеры , файл-серверы , веб-серверы </li></ul></ul><ul><ul><li>Модель клиент-сервер </li></ul></ul><ul><li>Сервисы </li></ul><ul><ul><li>Вычисления </li></ul></ul><ul><ul><li>Файловые хранилища </li></ul></ul>
    27. 28. <ul><li>Разработан сообществом исследователей </li></ul><ul><ul><li>Базируется на открытом стандарте : IP </li></ul></ul><ul><ul><li>Internet Engineering Task Force (IETF) </li></ul></ul><ul><li>Техническая основа множества других сетей </li></ul><ul><ul><li>Intranet: IP -сеть уровня предприятия </li></ul></ul><ul><li>Сервисы предоставляемые Интернетом </li></ul><ul><ul><li>Общий доступ к вычислительным ресурсам : telnet (1970 е ) </li></ul></ul><ul><ul><li>ОД к файлам и данным : FTP, NFS, AFS (1980 е ) </li></ul></ul><ul><ul><li>Коммуникационная среда сообщества людей </li></ul></ul><ul><ul><ul><li>email (1980 е ), чаты , мгновенные сообщения (1990 е ) </li></ul></ul></ul><ul><ul><ul><li>аудио , видео (1990 е , ранние 00 е ) </li></ul></ul></ul><ul><ul><li>Среда распространения информации </li></ul></ul><ul><ul><ul><li>USENET (1980 е ) </li></ul></ul></ul><ul><ul><ul><li>WWW (1990 е ) </li></ul></ul></ul><ul><ul><ul><li>аудио , видео ( поздние 90 е , ранние 00 е ) – замена радио и ТВ ? </li></ul></ul></ul><ul><ul><ul><li>Общие файлы ( поздние 90 е , ранние 00 е ) </li></ul></ul></ul>Фаза 4 (1988—): Интернет
    28. 29. Сетевое “ Облако ”
    29. 30. Региональные сети + Магистраль Региональная сеть Региональная сеть Региональная сеть Региональная сеть Региональная сеть Региональная сеть Магистраль LAN LAN LAN LAN: локальная сеть
    30. 31. Магистрали + NAP + ISP ISP ISP ISP ISP Бизнес ISP Потребитель ISP LAN LAN LAN NAP NAP Магистраль Dial-up ISP: Internet Service Provide NAP: Network Access Point
    31. 32. Parallel Backbones Qwest IP Backbone (Late 1999) Digex Backbone GTE Internetworking Backbone
    32. 33. Интернет-червь Морриса (1988) <ul><li>Интернет-червь ( саморазмножающийся ) </li></ul><ul><ul><li>Автор Robert Morris, аспирант первого года </li></ul></ul><ul><ul><li>Запущен 2 ноября 1988 </li></ul></ul><ul><ul><li>Через несколько часов после заражения червь съедал ресурсы машины вплоть до ее зависания </li></ul></ul><ul><li>Техника </li></ul><ul><ul><li>использовал сетевые средства UNIX ( удаленный доступ ) </li></ul></ul><ul><ul><li>ошибки в finger ( переполнение буфера ) и sendmail ( в режиме отладки разрешен удаленный логин ) </li></ul></ul><ul><ul><li>взлом паролей по словарю </li></ul></ul><ul><ul><li>Программа-гарпун загружала червя </li></ul></ul>
    33. 34. Вирус LoveLetter ( Май 2000) <ul><li>E-mail сообщение с VBScript ( упрощенный Visual Basic) </li></ul><ul><li>Полагался на Windows Scripting Host </li></ul><ul><ul><li>вкл по умолчанию в Win98/2000 </li></ul></ul><ul><li>Юзер лезет а аттач  заражен ! </li></ul><ul><ul><li>Отправка себя всем из адресной книги </li></ul></ul><ul><ul><li>R амена некоторых файлов копией себя </li></ul></ul><ul><ul><li>Поиск всех носителей </li></ul></ul><ul><ul><li>Загрузка программы взлома пролей </li></ul></ul><ul><li>60-80% Компаний в США были заражены и 100K Европейских серверов </li></ul>
    34. 35. Фаза 5 (1995—): Мобильные системы <ul><li>Повсеместные мобильные устройства </li></ul><ul><ul><li>Нетбуки , КПК , телефоны </li></ul></ul><ul><ul><li>Маленькие и недорогие </li></ul></ul><ul><ul><ul><li>много компьютеров на человека ! </li></ul></ul></ul><ul><ul><li>Ограниченные возможности ( память , ЦП , потребление , и т.д.) </li></ul></ul><ul><li>Беспроводная глобальная сеть </li></ul><ul><ul><li>уравновешивание инфраструктуры </li></ul></ul><ul><ul><li>Огромный распределенный пул ресурсов </li></ul></ul><ul><ul><li>Обычные компьютеры разделились на части . Беспроводная клавиатура , CPU распределенные , удаленные хранилища </li></ul></ul><ul><li>Системы Peer-to-peer </li></ul><ul><ul><li>Много устройств с равными ответственностями работают вместе </li></ul></ul><ul><ul><li>Компоненты “ Операционной системы ” распределены на глобусе </li></ul></ul>
    35. 36. Модель CITRIS Масштабируемые , Надежные , Защищенные сервисы микроэлектромеханические системы для Сенсорных систем Соединение с интернетом Базы данных Коллекции информации Удаленные хранилища Онлайн игры Коммерция … <ul><li>Center for Information Technology Research in the Interest of Society </li></ul><ul><li>Сеть – это OC </li></ul>Clusters Massive Cluster Gigabit Ethernet
    36. 37. <ul><li>Google программа == Web поиск , Gmail,… </li></ul><ul><li>Google комьютер == </li></ul><ul><ul><li>Тысячи компьютером , сеть , хранилища </li></ul></ul><ul><li>Такое сейчас встречается не часто, но скоро будет более распространино </li></ul>Датацентр – это компьютер
    37. 38. Миграция концептов и возможностей ОС
    38. 39. История ОС : Выводы <ul><li>Изменения продолжаются и ОС адаптируются </li></ul><ul><ul><li>Не : считайте, что пакетный режим – это тупняк </li></ul></ul><ul><ul><li>Но : знайте, что все имеет смысл в свое время </li></ul></ul><ul><li>Ситуация сегодня почти как в конце 60 х [ опрос ] </li></ul><ul><ul><li>Маленькая ОС : 100K строк </li></ul></ul><ul><ul><li>Большая ОС : 10M строк (5M для браузера !) </li></ul></ul><ul><ul><ul><li>100-1000 человеко-лет </li></ul></ul></ul><ul><li>Сложность не побеждена </li></ul><ul><ul><li>NT(90 е ): никогда не работала хорошо </li></ul></ul><ul><ul><li>Windows 2000/XP: очень успешна </li></ul></ul><ul><ul><li>Windows Vista (aka “Longhorn”) откладывалась много раз </li></ul></ul><ul><ul><ul><li>Финальный релиз Январь 2007 </li></ul></ul></ul><ul><ul><ul><li>Медленная адаптация , даже в 2008 </li></ul></ul></ul><ul><li>Понимать ОС, чтобы упростить их </li></ul>
    39. 40. Теперь быстрый тур по структурам ОС
    40. 41. Компоненты ОС <ul><li>Управление процессами </li></ul><ul><li>Управление основной памятью </li></ul><ul><li>Система управления вводом / выводом </li></ul><ul><li>Управления файлами </li></ul><ul><li>Сеть </li></ul><ul><li>Интерфейсы пользователя </li></ul>
    41. 42. Сервисы операционных систем <ul><li>Сервисы, предоставляемые компонентами </li></ul><ul><ul><li>Выполнение программ </li></ul></ul><ul><ul><ul><li>Как запустить конкурентную последовательность команд ? </li></ul></ul></ul><ul><ul><li>Операции ввода / вывода </li></ul></ul><ul><ul><ul><li>Стандартные интерфейсы к совершенно различным устройствам </li></ul></ul></ul><ul><ul><li>Взаимодействие с файловой системой </li></ul></ul><ul><ul><ul><li>Как читать / писать / сохранять файлы ? </li></ul></ul></ul><ul><ul><li>Коммуникации </li></ul></ul><ul><ul><ul><li>Сетевые протоколы / интерфейсы с Киберпространством ? </li></ul></ul></ul><ul><li>Передовые технологии </li></ul><ul><ul><li>Обнаружение ошибок & исправление </li></ul></ul><ul><ul><li>Распределение ресурсов </li></ul></ul><ul><ul><li>Защита </li></ul></ul>
    42. 43. Системные вызовы ( что такое API)
    43. 44. Структура ОС ( Какой организационный принцип ?) <ul><li>Простота </li></ul><ul><ul><li>Один или два уровня кода </li></ul></ul><ul><li>Слоистость </li></ul><ul><ul><li>Нижние уровни не зависят от верхних </li></ul></ul><ul><li>Микроядро </li></ul><ul><ul><li>ОС построена из множества процессов уровня пользователя </li></ul></ul><ul><li>Модульность </li></ul><ul><ul><li>Внутреннее ядро с динамически загружаемыми модулями </li></ul></ul>
    44. 45. Простая структура <ul><li>MS-DOS – предоставляет наибольшие возможности в наименьшем пространстве </li></ul><ul><ul><li>Не разделен на модули </li></ul></ul><ul><ul><li>Интерфейсы и функциональные уровни не разделены </li></ul></ul>
    45. 46. UNIX: Тоже “ простая ” структура <ul><li>UNIX – ограниченные возможности железа </li></ul><ul><li>Исторически ОС UNIX состояла из двух частей : </li></ul><ul><ul><li>Системные программы </li></ul></ul><ul><ul><li>Ядро </li></ul></ul><ul><ul><ul><li>Состоит из того, что между системным вызовом и физическим оборудованием </li></ul></ul></ul><ul><ul><ul><li>Предоставляет файловую систему , планирование нагрузки ЦП , управление памятью и др. </li></ul></ul></ul>
    46. 47. Структура системы UNIX User Mode Kernel Mode Hardware Applications Standard Libs
    47. 48. Слоистая структура <ul><li>ОС разделена на множество слоев ( уровней ) </li></ul><ul><ul><li>Каждый построен на более нижнем </li></ul></ul><ul><ul><li>Нижний слой ( уровень 0) – железо </li></ul></ul><ul><ul><li>Верхний слой (l уровень N) -- UI </li></ul></ul><ul><li>Каждый слой использует только функции и сервисы более нижних слоев </li></ul><ul><ul><li>Плюсы : модульность  Легче отлаживать / поддерживать </li></ul></ul><ul><ul><li>Не всегда возможно : Планировщик процесса лежит выше или ниже слоя виртуальной памяти ? </li></ul></ul><ul><ul><ul><li>Нужно перепланировать процессорное время при ожидании paging’ а. </li></ul></ul></ul><ul><ul><ul><li>Может затребовать страницу с информацией о выполняемых процессах </li></ul></ul></ul><ul><li>Важно : машинно-зависимые vs независимые слои </li></ul><ul><ul><li>проще миграция между платформами </li></ul></ul><ul><ul><li>проще эволюция платформы </li></ul></ul>
    48. 49. Слоистая операционная система
    49. 50. Структура микроядра <ul><li>Переместить все из режима ядра в режим пользователя </li></ul><ul><ul><li>Небольшое ядро работает в режиме ядра </li></ul></ul><ul><ul><li>Сервисы ОС построены из множества независимых пользовательских процессов </li></ul></ul><ul><li>Взаимодействие между модулями с помощью сообщений </li></ul><ul><li>Плюсы : </li></ul><ul><ul><li>Легко расширить микроядро </li></ul></ul><ul><ul><li>Легко портировать ОС на другую платформу </li></ul></ul><ul><ul><li>Надежность ( меньше кода работает в режиме ядра ) </li></ul></ul><ul><ul><li>Изоляция сбоев ( части ядра защищены от других частей ) </li></ul></ul><ul><ul><li>Большая защищенность </li></ul></ul><ul><li>Минусы : </li></ul><ul><ul><li>Производительность страдает из-за часты переключений контекста </li></ul></ul>
    50. 51. Модульные структуры <ul><li>Большинство ОС разделены на модули </li></ul><ul><ul><li>Объектно-ориентированный подход </li></ul></ul><ul><ul><li>все компоненты ядра разделены </li></ul></ul><ul><ul><li>все “ говорят ” по известным интерфейсам </li></ul></ul><ul><ul><li>каждый загружается по мере необходимости </li></ul></ul><ul><li>То есть , похоже на слои, но более гибкая </li></ul>
    51. 52. Структуры основанные на разделах для Multicore чипов ? Device Drivers Video & Window Drivers Firewall Virus Intrusion Monitor And Adapt Persistent Storage & File System HCI/ Voice Rec Large Compute-Bound Application Real-Time Application Identity
    52. 53. Вопросы реализации ( Как реализована ОС ?) <ul><li>Политика vs. Механизм </li></ul><ul><ul><li>Политика : Что ты хочешь сделать ? </li></ul></ul><ul><ul><li>Механизм : Как ты хочешь сделать ? </li></ul></ul><ul><ul><li>Должны быть разделены ибо оба меняются </li></ul></ul><ul><li>Используются алгоритмы </li></ul><ul><ul><li>Линейные , на основе деревьев , и др … </li></ul></ul><ul><li>Модель событий </li></ul><ul><ul><li>нити vs циклы событий </li></ul></ul><ul><li>Обратная совместимость </li></ul><ul><ul><li>Очень важна для Windows 2000/XP </li></ul></ul><ul><li>Развертывание системы / конфигурация </li></ul><ul><ul><li>Как заставить ОС работать на специфическом оборудовании </li></ul></ul>
    53. 54. Заключение <ul><li>Быстрые изменения в железе вызывают изменения в ОС </li></ul><ul><ul><li>Batch  Многозадачность  Разделение времени  Графический UI  Повсеместные устройства  Киберпространство /Metaverse/?? </li></ul></ul><ul><li>Возможности ОС мигрировали от мейнфреймов к ПК </li></ul><ul><li>Стандартные компоненты и сервисы </li></ul><ul><ul><li>Управление процессами </li></ul></ul><ul><ul><li>Основная память </li></ul></ul><ul><ul><li>I/O </li></ul></ul><ul><ul><li>Файловая система </li></ul></ul><ul><ul><li>UI </li></ul></ul><ul><li>Политика vs Механизм </li></ul><ul><ul><li>ключ в разделение : не всегда правильно сделано ! </li></ul></ul><ul><li>Сложность всегда неуправляема </li></ul><ul><ul><li>Однако , “ Сопротивление не бесполезно! ” </li></ul></ul>

    ×