Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






В: улучшение производительности полупроводниковых процессоров. Что лучше, увеличение количества ядер или увеличение потоков в ядре.






О:

Cсоздать большой мультикомпьютер проще и дешевле, чем мультипроцессор с таким же количеством процессоров. Реализация общей памяти, совместно используемой несколькими сотнями процессоров, — это весьма сложная задача, а разработать мультикомпьютер, содержащий 10 000 процессоров и более, довольно легко.

Таким образом, мы сталкиваемся с дилеммой: мультипроцессоры сложно разрабатывать, но легко программировать, а мультикомпьютеры легко строить, но трудно программировать. В результате постоянно предпринимаются попытки создания гибридных систем. Эти попытки привели к осознанию того факта, что совместную память можно реализовывать по-разному, причем каждый вариант будет иметь достоинства и недостатки. Практически все исследования в области параллельных компьютерных архитектур направлены на создание гибридных форм, которые сочетают в себе достоинства обеих систем. Здесь важно добиться масштабируемости, то есть разработать такую систему, которая будет продолжать исправно работать при добавлении все новых и новых процессоров.

Один из подходов основан на том, что современные компьютерные систе- мы не монолитны, а имеют многоуровневую структуру. Это дает возможность реализовать общую память на любом из нескольких уровней, как показано на рис. 8.19. На рис. 8.19, а мы видим общую память, реализованную аппарат- но, как в «настоящем» мультипроцессоре. В данной разработке имеется одна копия операционной системы с одним набором таблиц, в частности таблицей распределения памяти. Если процессу требуется больше памяти, он прерывает работу операционной системы, которая после этого начинает искать в таблице свободную страницу и отображает эту страницу на адресное пространство вызы- вающего процесса. Что касается операционной системы, имеется единая память, и операционная система следит, какая страница какому процессу принадлежит. Существует множество способов аппаратной реализации общей памяти.

Второй подход — использовать аппаратное обеспечение мультикомпьютера и операционную систему, которая будет моделировать общую память, предостав- ляя единое виртуальное адресное пространство, разбитое на страницы. При таком подходе получается распределенная общая память (Distributed Shared Memory, DSM), в которой каждая страница расположена в одном из модулей памяти (см. рис. 8.17, а), а каждая машина содержит собственную виртуальную память и собственные таблицы страниц [Li and Hudak, 1989]. Если процессор выполняет команду LOAD или STORE, обращаясь к странице, которой у него нет, происходит системное исключение. После этого операционная система находит нужную страницу и обращается к соответствующему процессору, чтобы тот выгрузил страницу из памяти и послал ее через внутреннюю коммуникационную сеть, по которой процессоры обмениваются сообщениями. Когда страница попадает процессу-получателю, она отображается на память, и выполнение прерванной команды возобновляется. По существу, операционная система просто получает недостающие страницы не с диска, а из памяти. При этом у пользователя созда- ется впечатление, что машина имеет единую общую память. Далее в этой главе мы еще вернемся к распределенной общей памяти.

Третий подход — реализовать общую память программно пользовательской системой реального времени. При таком подходе абстракцию общей памяти

создает язык программирования, и эта абстракция реализуется компилятором (то есть модель общей памяти может зависеть от используемого языка програм- мирования). Например, модель Linda основана на абстракции общего простран- ства кортежей (записей данных, содержащих наборы полей). Процессы любой машины могут взять кортеж из общего пространства или отправить его в общее пространство. Поскольку доступ к этому пространству полностью контролиру- ется программно (системой реального времени Linda), никакой специальной аппаратной поддержки или особой операционной системы не требуется.


 

Проект GNU. Операционная система GNU/Linux. История. Философия.

Проект GNU (англ. The GNU Project) — проект по разработке свободного программного обеспечения (СПО), является результатом сотрудничества множества отдельных проектов. Проект был запущен известным программистом и сторонником СПО Ричардом Столлманом 27 сентября 1983 года в Массачусетском технологическом институте.[1] Изначальной целью проекта было «разработать достаточно свободного программного обеспечения < …>, чтобы можно было обойтись без программного обеспечения, которое не является свободным».[2] Чтобы этого достичь, проект в 1984 году приступил к разработке операционной системы GNU (GNU является рекурсивным акронимом, расшифровывающимся, как «GNU is Not Unix»). В 1990 году мы уже нашли или написали все основные компоненты, кроме одного — ядра. В 1991 году Линус Торвальдс разработал Linux, ядро, сходное с Unix, которое стало свободной программой в 1992 году. Объединение Linux с почти законченной системой GNU дало полную операционную систему: систему GNU/Linux.

Первичная и неизменная цель GNU — получить совместимую с Unix операционную систему, которая была бы на 100% свободной.

Слово “свободная” относится к свободе, а не к цене. Может быть, вы заплатите за то, чтобы получить программы GNU, а может быть, и нет. В любом случае, как только вы получаете программу, вы получаете четыре особые свободы в ее использовании: свободу выполнять программу, как вам угодно; свободу копировать программу и раздавать ее знакомым или сотрудникам; свободу править программу, как вам угодно, имея полный доступ к исходному тексту; свободу распространять улучшенную версию и таким образом способствовать образованию сообщества.

Пользовательский интерфейс POSIX

POSIX (англ. portable operating system interface for Unix — переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем.

Задачи

  • содействовать облегчению переноса кода прикладных программ на иные платформы;
  • способствовать определению и унификации интерфейсов заранее при проектировании, а не в процессе их реализации;
  • сохранять по возможности и учитывать все главные, созданные ранее и используемые прикладные программы;
  • определять необходимый минимум интерфейсов прикладных программ, для ускорения создания, одобрения и утверждения документов;
  • развивать стандарты в направлении обеспечения коммуникационных сетей, распределенной обработки данных и защиты информации;
  • рекомендовать ограничение использования бинарного (объектного) кода для приложений в простых системах.

 

Фильтрация текста - это процесс преобразований над входным потоком текста до того как он будет выдан в выходной поток. Хотя как входной, так и выходной поток могут поступать из файла, в системах Linux и UNIX фильтрация преимущественно осуществляется через конвейер команд, когда вывод одной команды связывается или перенаправляется на ввод следующей команды. Сейчас давайте взглянем на конвейер и простое перенаправление вывода с помощью операторов | и >.

Многие команды обработки текста (фильтры) могут принимать входной поток, как из стандартного ввода, так и из файла. Чтобы использовать выход команды command1, как входной фильтр command2 вы должны соединить команды с помощью операции конвейеризации (|), как показано в Листинге 20.

Листинг 20. Связывание выхода command1 со входом command2

command1 | command2

Команды для работы с директориями

Получить имя текущего каталога с помощью команды pwd

Перейти в корневой каталог с помощью команды cd

Посмотреть содержимое корневого каталога с помощью команды ls

Создать директорию test с помощью команды mkdir test

Удаление директории rmdir

Найти все файлы и дериктории в текущей директории и ее поддиректориях, которые начиняются на «o» с помощью команды find -name " o*"

Команды для работы с файлами

Cоздать пустой файл с помощью команды touch test/first.txt

Добавить строку текста в конец файла с помощью команды echo " Hello, world" > > test/first.txt

Посмотреть содержимое файла с помощью команды cat test/first.txt

Скопировать файл с помощью команды cp first.txt copy1.txt: (или dd)

Переименовать файл с помощью команды mv first.txt orig.txt

Реверсивное отображение с помощью tac

Посмотеть первые несколько строк длинного файла с помощью команды head

Аналогично, посмотреть последние несколько строк с помощью команды tail

Разделение фалов split

Команда wc отображает число строк, слов и байт в файле

Синтаксис grep.

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

grep ОБРАЗЕЦ имя_файла

Найти все предупреждения в журнале: строка, начинающаяся с «(WW)». Для этого ввести команду grep " ^(WW)" test/log/XFree86.0.log

Встроенные Системы

OpenWrt — встроенная операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl и BusyBox. Размер всех компонентов оптимизирован в связи с тем, что в большинстве домашних маршрутизаторов сильно ограничен объём памяти.

 

Maemo — базирующаяся на Debian Linux платформа для портативных устройств. Используется в интернет-планшетах Nokia 770, Nokia N800, N810 и Nokia N900. В основе Maemo лежат компоненты среды GNOME, в том числе графическая библиотека gtk. Бо́ льшая часть кода Maemo открыта, и послужила основой для создания Ubuntu Mobile. Существует множество приложений для платформы Maemo, почти все они бесплатные и свободные.

 

MeeGo — проект с открытым исходным кодом на основе GNU/Linux. Платформа предназначена для работы на широком спектре устройств, включая смартфоны, планшеты, нетбуки, настольные компьютеры, телевизионные приёмники и информационно-развлекательные системы. Центральной идеей является обеспечение максимально легкой переносимости приложений между различными вариантами сборок. В MeeGo используются наработки проектов Maemo (от Nokia), Moblin (от Intel), а также таких Linux-проектов, как Fedora, Debian, OpenSUSE. Многие частные компании принимают участие в разработке и адаптации MeeGo: Intel (на сегодня основной участник проекта), AMD, Novell, ASUS, Acer, MSI и другие.

 

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

 

Tizen (произносится «та́ йзен») — открытая операционная система на базе ядра Linux, предназначенная для широкого круга устройств, включая смартфоны, интернет-планшеты, компьютеры, автомобильные информационно-развлекательные системы, «умные» телевизоры и цифровые камеры, разрабатываемая и управляемая такими корпорациями, как Intel и Samsung, входящими в Technical Steering Group (TSG), и поддерживаемая Linux Foundation и Tizen Association. Является наследником MeeGo, LiMo и bada. Поддерживает аппаратные платформы на процессорах архитектур ARM и x86.

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.011 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал