Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ОС 1

949 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

ОС 1

  1. 1. Операционные системы и системное программирование Лекция 1 Что такое операционная система
  2. 2. Сегодняшние цели <ul><li>Что такое операционная система ? </li></ul><ul><ul><li>и чем она не является ? </li></ul></ul><ul><li>Примеры дизайна операционных систем </li></ul><ul><li>Зачем изучать операционные системы ? </li></ul><ul><li>Диалог приветствуется, задавайте вопросы ! </li></ul>
  3. 3. Технологические тренды : закон Мура 2X транзисторов / на чип каждые 1 , 5 года Называется “ Закон Мура ” Moore’s Law Микропроцессоры стали меньше, плотнее и более произво-дительными Гордон Мур ( сооснователь Intel) предсказал в 1965 , что плотность транзисторов на кристалле будет удваиваться каждые 18 месяцев.
  4. 4. Влияние ИТ на общество <ul><li>Мир – большая параллельная система </li></ul><ul><ul><li>Микропроцессоры всюду </li></ul></ul><ul><ul><li>Огромная инфраструктура позади них </li></ul></ul>Масштабируемые , Надежные , Защищенные сервисы микроэлектромеханические системы для Сенсорных систем Соединение с интернетом Базы данных Коллекции информации Удаленные хранилища Онлайн игры Коммерция … Clusters Massive Cluster Gigabit Ethernet
  5. 5. Отношение “ человек - на - компьютер ” течением времени <ul><li>Сегодня : CPU на человека ! </li></ul><ul><ul><li>приближается к 100 -ям ? </li></ul></ul>
  6. 6. Новые трудности : Замедление в законе производительности Джоя <ul><li>VAX : 25%/year 1978 to 1986 </li></ul><ul><li>RISC + x86: 52%/year 1986 to 2002 </li></ul><ul><li>RISC + x86: ??%/year 2002 to present </li></ul>From Hennessy and Patterson, Computer Architecture: A Quantitative Approach , 4th edition, Sept. 15, 2006  изменение в дизайне чипов : многоядерность или многопроцессорность 3X
  7. 7. Многоядерные( ManyCore ) чипы : Будущее настало <ul><li>Ко скольки ядрам отностся “ManyCore” </li></ul><ul><ul><li>64? 128? Трудно точно сказать </li></ul></ul><ul><li>Как их использовать ? </li></ul><ul><ul><li>2 процессора для аудио / видео </li></ul></ul><ul><ul><li>1 для редактирования текста , 1 для браузера </li></ul></ul><ul><ul><li>76 для поиска вирусов ??? </li></ul></ul><ul><li>Параллельное программирование должно быть использовано на всех уровнях. </li></ul><ul><li>Intel 80- ядерный чип ( Фев 2007) </li></ul><ul><ul><li>80 простых ядер </li></ul></ul><ul><ul><li>Два арифметических устройства( float ) на ядро </li></ul></ul><ul><ul><li>сеть на кристалле &quot;network-on-a-chip“ </li></ul></ul><ul><ul><li>100 миллионов транзисторов </li></ul></ul><ul><ul><li>размер элемента 65 нм </li></ul></ul><ul><li>Частота Напр. Мощн. Проп. способн. Производит. </li></ul><ul><li>3 , 16 ГГц 0 , 95 В 62 Вт 1 , 62 Terabits/s 1 , 01 Teraflops </li></ul><ul><li>5 , 1 ГГц 1 , 2 В 175 Вт 2 , 61 Terabits/s 1 , 63 Teraflops </li></ul><ul><li>5 , 7 ГГц 1 , 35 В 265 Вт 2 , 92 Terabits/s 1 , 81 Teraflops </li></ul>
  8. 8. Другие трудности : энергетическая плотность <ul><li>Экстраполяция закона Мура </li></ul><ul><ul><li>энергоплотность достигает огромных значений ! </li></ul></ul><ul><li>Обратная сторона : время жизни батарейки </li></ul><ul><ul><li>Закон Мура может привести к большей производительности при эквивалентном (или меньшем) энергопотреблении </li></ul></ul>
  9. 9. Организация компьютерных систем <ul><ul><li>Один или несколько ЦП , контроллеры устройств соединены через шину, предоставляющую доступ к общей памяти </li></ul></ul><ul><ul><li>Конкуренция ЦП и устройств за циклы памяти </li></ul></ul>
  10. 10. Функциональность достигается сильным усложнением! Pentium IV Чипсет Proc Caches Busses Memory I/O Devices: Controllers adapters Disks Displays Keyboards Networks
  11. 11. Вопросы компьютерной архитектуры Набор инструкций Pipelining, Hazard Resolution, суперскаляр , Reordering, предсказание , Speculation, векторные операции , динамическая компиляция Адресация , Защита , Обработка ошибок L1 Кэш L2 Кэш DRAM Диски , WORM, Лента Связность , Ширина пропускания , Латентность Новые технологии Интерливинг , Протоколы шин RAID СБИС Ввод / Вывод и хранение Иерархия памяти Конвейеры и параллелизм уровня инструкций Сетевые коммуникации Другие процессоры
  12. 12. Увеличение сложности программного обеспечения
  13. 13. Пример : некоторые требования к марсоходу (“Pathfinder”) <ul><li>Ограничения сложности : </li></ul><ul><ul><li>20Mhz процессор , 128MB of DRAM, VxWorks ОС </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><ul><li>Независимость отдельных программ </li></ul><ul><ul><li>Предположим, что MUT (Martian Universal Translator Module) глючный </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><li>Точные, критические по времени функции : </li></ul><ul><ul><li>Предотвращение столкновений. </li></ul></ul><ul><ul><li>Отслеживание траектории Земли. </li></ul></ul>
  14. 14. Как “ победить ” сложность ? <ul><li>Каждая часть компьютера может быть различной </li></ul><ul><ul><li>ЦП </li></ul></ul><ul><ul><ul><li>Pentium, PowerPC, ColdFire, ARM, MIPS </li></ul></ul></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><ul><ul><li>кабель , DSL, беспровод , Firewalls,… </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><ul><ul><li>Должна ли каждая программа иметь доступ ко всему оборудованию ? </li></ul></ul>
  15. 15. Средство ОС : абстракция виртуальной машины <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>Приложение ОС Оборудование интерфейс физ. машины интерфейс вирт. машины
  16. 16. Интерфейсы проводят важные границы <ul><li>Почему интерфейсы выглядят так как выглядят ? </li></ul><ul><ul><li>история , функциональность , глупость , баги , менеджмент </li></ul></ul><ul><li>Должны ли ответственности пересекать границы ? </li></ul><ul><ul><li>архитектура RISC, архитектура графического конвейера </li></ul></ul>набор инструкций софт железо
  17. 17. Виртуальные машины <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><ul><ul><li>Интерфейсы устройств более эффективны, чем “ сырое ” железо </li></ul></ul><ul><ul><ul><li>Дисплей битовых карт  оконная система </li></ul></ul></ul><ul><ul><ul><li>Ethernet -карта  TCP/IP </li></ul></ul></ul><ul><li>Изоляция ошибок </li></ul><ul><ul><li>Процессы независимы </li></ul></ul><ul><ul><li>Баги не роняют всю машину </li></ul></ul>
  18. 18. Виртуальные машины : Уровни ОС <ul><li>Удобны при разработке ОС </li></ul><ul><ul><li>Когда ОС падает , это ограничивается одной ВМ </li></ul></ul><ul><ul><li>Поддержка тестирования на других ОС </li></ul></ul>
  19. 19. Что делает операционная система ? <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><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>Файловая система должна быть защищена ( ГИБДДшник ) </li></ul></ul>
  20. 20. Что такое ОС ,… в действительности ? <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>Коммуникации ? (Email относится к ОС ?) </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>
  21. 21. Определение ОС <ul><li>Нет универсального определения </li></ul><ul><li>“ Все, что вы находите в коробке, когда покупаете ОС ” – хорошая аппроксимация </li></ul><ul><ul><li>но сильно различающаяся </li></ul></ul><ul><li>“ Единственная программа, работающая всегда при включенном компьютере ” – это ядро . </li></ul><ul><ul><li>плюс все остальное, будь-то системная программа ( поставка вместе с ОС ) или приложение </li></ul></ul>
  22. 22. Что если не использовать ОС ? <ul><li>Исходные код  Компилятор  Объектный код  Железо </li></ul><ul><li>Как запустить объектный код на железе ? </li></ul><ul><li>Как напечатать ответ ? </li></ul><ul><li>Пример программирования в бинарных кодах и чтение ответа со светодиодов ! </li></ul>Altair 8080
  23. 23. Простые ОС : Что если только одно приложение ? <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>Обработчики прерываний </li></ul></ul><ul><ul><li>Математические библиотеки </li></ul></ul>
  24. 24. Структура уровней MS-DOS
  25. 25. Дополнительные мысли о простых ОС <ul><li>Что насчет сотовых, приставок ( Xbox ) , и др. ? </li></ul><ul><ul><li>Достаточно ли такой организации ? </li></ul></ul><ul><li>Может ли ОС быть закодированной в ROM/Flash ROM? </li></ul><ul><li>Должна ли ОС быть софтом ? </li></ul><ul><ul><li>Может ли ОС быть реализована в железе ? </li></ul></ul><ul><ul><li>Чип с предустановленным поведением </li></ul></ul><ul><ul><li>Это тоже ОС ? </li></ul></ul>
  26. 26. Более сложные ОС : Несколько приложений <ul><li>Полная координация и защита </li></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><ul><li>Имеет ли такая сложность смысл, если необходимо поддерживать работу единственного приложения? </li></ul>
  27. 27. Пример : Защита процессов друг от друга <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>
  28. 28. Преобразование адресов ( 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 Виртуальные адреса Физические адреса
  29. 29. Пример преобразования адресов Prog 1 Виртуальное пространство адресов 1 Prog 2 Виртуальное пространство адресов 2 Карта Преобразований 1 Карта Преобразований 2 Физическое пространство адресов Код Данные Куча Стек Код Данные Куча Стек Данные 2 Стек 1 Куча 1 ОС куча & стеки Код 1 Стек 2 Данные 1 Куча 2 Код 2 ОС код ОС данные
  30. 30. Детали преобразования адресов <ul><li>Теперь рассмотрим преобразование адресов по таблице ( называемое Page Table): </li></ul><ul><li>Преобразование помогает в защите : </li></ul><ul><ul><li>Контролирование преобразования, контролирование доступа </li></ul></ul><ul><ul><li>Должны ли пользователи иметь возможность менять Page Table??? </li></ul></ul>Виртуальный адрес Page Table индекс в таблице страниц V Access Rights PA V page no . offset 10 таблица в физической памяти P page no. offset 10 Физический адрес
  31. 31. Dual Mode Operation <ul><li>Hardware provides at least two modes: </li></ul><ul><ul><li>“ Kernel” mode (or “supervisor” or “protected”) </li></ul></ul><ul><ul><li>“ User” mode: Normal programs executed </li></ul></ul><ul><li>Some instructions/ops prohibited in user mode: </li></ul><ul><ul><li>Example: cannot modify page tables in user mode </li></ul></ul><ul><ul><ul><li>Attempt to modify  Exception generated </li></ul></ul></ul><ul><li>Transitions from user mode to kernel mode: </li></ul><ul><ul><li>System Calls, Interrupts, Other exceptions </li></ul></ul>
  32. 32. Структура UNIX Пользовательский режим Режим ядра Железо Applications Standard Libs
  33. 33. Новые структуры для многоядерных чипов ? Tessellation: The Exploded OS <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>TCP/IP стек </li></ul></ul></ul><ul><ul><ul><li>Firewall </li></ul></ul></ul><ul><ul><ul><li>проверка на вирусы </li></ul></ul></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><ul><ul><li>Идентификация / Окружение </li></ul></ul><ul><ul><ul><li>биометрия , GPS </li></ul></ul></ul><ul><li>Приложениям отдаются крупные части </li></ul><ul><ul><li>Произвольное использование ресурсов </li></ul></ul>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
  34. 34. Принципы ОС <ul><li>OC как фокусник : </li></ul><ul><ul><li>уничтожает ограничения оборудования </li></ul></ul><ul><ul><li>создает иллюзию, что имеется бесконечно много процессоров и бесконечное количество памяти </li></ul></ul><ul><li>OC как правительство : </li></ul><ul><ul><li>Охраняет пользователей друг от друга </li></ul></ul><ul><ul><li>Эффективно распределяет ресурсы </li></ul></ul><ul><li>OC как сложная система : </li></ul><ul><ul><li>Поддерживает соотношение между простотой, функциональностью и производительностью </li></ul></ul><ul><li>OC как учитель истории </li></ul><ul><ul><li>Использование предыдущего опыта </li></ul></ul><ul><ul><li>Адаптация к усовершенствованному оборудованию </li></ul></ul>
  35. 35. Зачем изучать ОС ? <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><ul><ul><li>Почему разные ПК с одинаковой частотой ЦП работают по-разному </li></ul></ul><ul><ul><li>Что выбрать Windows XP, 2000, Linux, Mac OS …? </li></ul></ul><ul><ul><li>Почему у Microsoft такое дурацкое имя ? </li></ul></ul><ul><li>Бизнес навыки : </li></ul><ul><ul><li>Что использовать на работе тонкие клиенты или ПК ? </li></ul></ul><ul><li>Безопасность , вирусы и черви </li></ul><ul><ul><li>Каких угроз стоит бояться ? </li></ul></ul>
  36. 36. Заключение <ul><li>ОС предоставляют абстракцию виртуальной машины для работы с различным оборудованием </li></ul><ul><li>ОС управляют ресурсами и защищают пользователей друг от друга </li></ul><ul><li>ОС упрощают разработку приложений, предоставляя стандартные сервисы </li></ul><ul><li>ОС могут предоставлять возможности предотвращения, обработки и протоколирования ошибок </li></ul><ul><li>Курс ОС комбинирует различные вопросы </li></ul><ul><ul><li>Языки , структуры данных , железо и алгоритмы </li></ul></ul>

×