Соединяет все элементы компьютера в единое целое, которое представляет собой компьютерная наука
Обновлено: 22.11.2024
Компьютер — это удивительно полезная универсальная технология, до такой степени, что теперь камеры, телефоны, термостаты и многое другое превратились в маленькие компьютеры. В этом разделе будут представлены основные части и темы работы компьютерного оборудования. «Оборудование» — это физические части компьютера, а «программное обеспечение» — код, работающий на компьютере.
Чипы и транзисторы
- Транзистор — жизненно важный электронный блок.
—Транзисторы являются «твердотельными» — в них нет движущихся частей.
— Одно из самых важных изобретений в истории.
— «Переключатель», который мы можем включить. /выключено электрическим сигналом - Кремниевый чип – кусочек кремния размером с ноготь.
- Микроскопические транзисторы выгравированы на кремниевых чипах
- Чипы могут содержать миллиарды транзисторов.
- Чипсы упакованы в пластик с металлическими ножками.
- напр. Микросхемы ЦП, микросхемы памяти, флэш-чипы
- Силикон (металлоид) и силикон (мягкое вещество на кухонной утвари)
Вот кремниевый чип в пластиковой упаковке. Я вытащил это из кучи электронных отходов в здании Stanford CS, так что, наверное, оно старое. Это небольшой чип с несколькими «контактами» электрического соединения. Позже мы увидим более крупный чип с сотнями контактов.
Внутри пластиковой упаковки находится кремниевый чип размером с ноготь с выгравированными на его поверхности транзисторами и другими компонентами. Крошечные провода соединяют чип с внешним миром. (лицензия CC, атрибуция на шареалке 3. пользователь википедии Zephyris)
В современных компьютерах используются крошечные электронные компоненты, которые можно выгравировать на поверхности кремниевого чипа. (См.: чип из Википедии) Обратите внимание, что кремний (микросхемы, солнечные панели) и силикон (мягкий резиновый материал) — это разные вещи!
Самым распространенным электронным компонентом является "транзистор", который работает как усилительный клапан для потока электронов. Транзистор является «твердотельным» устройством, то есть в нем нет движущихся частей. Это основной строительный блок, используемый для создания более сложных электронных компонентов. В частности, «бит» (ниже) можно построить с компоновкой из 5 транзисторов. Транзистор был изобретен в начале 1950-х годов, заменив вакуумную лампу. С тех пор транзисторы становились все меньше и меньше, что позволяло размещать все больше и больше их на кремниевом чипе.
Закон Мура
- Транзисторы становятся в 2 раза меньше примерно каждые 2 года
– иногда указывается срок службы около 18 месяцев. - Может вместить в два раза больше транзисторов на чип
- Из-за более совершенной технологии травления чипов
-Но современный завод по производству чипов стоит более 1 миллиарда долларов - Наблюдение против научного "закона"
- 2 эффекта:
- а. чипы удваивают емкость каждые 2 года
-скорость не удваивается, емкость удваивается, что все еще очень полезно - б. или при неизменной емкости чипы становятся меньше и дешевле каждые 2 года.
- (б) вот почему компьютеры теперь используются в автомобилях, термостатах и поздравительных открытках.
- Пример: емкость MP3-плеера 50 долларов США каждые 2 года: 2 ГБ, 4 ГБ, 8 ГБ, 16 ГБ.
- Практическое правило: увеличение емкости в 8 раз каждые 6 лет.
- В 8 раз за 6 лет емкость вашего телефона может увеличиться в 8 раз
- Вероятно, закон Мура не будет действовать вечно
Закон Мура (Гордон Мур, соучредитель Intel) гласит, что плотность транзисторов на микросхеме удваивается примерно каждые 2 года (иногда указывается каждые 18 месяцев). Увеличение связано с улучшением технологии производства чипов. Это не научный закон, а просто общее предсказание, которое, кажется, продолжает работать. В более широком смысле он отражает идею о том, что на доллар компьютерные технологии (не только транзисторы) с течением времени становятся лучше в геометрической прогрессии. Это совершенно ясно, если вы посмотрите на стоимость или возможности компьютеров/камер и т. д., которые у вас есть. Закон Мура приводит к появлению более мощных компьютеров (сравните возможности iPhone 7 и оригинального iPhone), а также к более дешевым компьютерам (компьютеры с меньшими возможностями появляются повсюду, например, в термостатах и автомобилях).
Компьютеры в жизни: системы управления
- Система управления: реагирует на внешнее состояние
- напр. автомобильный двигатель: изменяйте топливную смесь в зависимости от температуры
- напр. сработала подушка безопасности при больших перегрузках от столкновения
- Чипы — отличный и дешевый способ создания систем управления.
- Докомпьютерные системы управления работали не так хорошо
- Одна из причин, почему сегодня автомобили работают намного лучше
Система управления / Демонстрация фонарика Мура
- У фонарика Maglite XL200 есть фишка
- Пример системы управления
- Закон Мура делает возможным такое применение чипа
- Фонарик преобразует угловое положение в яркость. (1 клик)
- Также есть угол для режима скорости моргания. (2 клика)
Компьютерное оборудование — ЦП, ОЗУ и постоянное хранилище
Теперь давайте поговорим о трех основных компонентах, из которых состоит компьютер: ЦП, ОЗУ и постоянном хранилище. Эти три компонента есть на всех компьютерах: ноутбуках, смартфонах и планшетах.
1. ЦП
- ЦП – центральный процессор
- Действует как мозг: следует инструкциям в коде.
- "общее" — изображения, работа в сети, математика... все на ЦП
- Выполняет вычисления, например. добавить два числа
- по сравнению с ОЗУ и постоянное хранилище, в которых только хранятся данные
- "гигагерц" = 1 миллиард операций в секунду
- ЦП с частотой 2 ГГц выполняет 2 миллиарда операций в секунду.
ЦП — центральный процессор — неизбежно называют "мозгом" компьютера. ЦП выполняет активный «запуск» кода, манипулируя данными, в то время как другие компоненты играют более пассивную роль, например, хранят данные. Когда мы говорим, что компьютер может «складывать два числа миллиард раз в секунду»… это процессор. Когда вы нажимаете кнопку «Выполнить», ЦП в конечном итоге «запускает» ваш код. Позже мы дополним картину того, как ваш код Javascript выполняется процессором.
Кроме того: "ядра" процессора
- Современные чипы ЦП имеют несколько ядер.
- Каждое ядро является полунезависимым процессором.
- Ключ: 4 ядра не в 4 раза быстрее, чем 1 ядро.
- т.е. 4 машины не доставят вас туда быстрее, чем 1 машина
- Убывающая отдача
- Более 4 ядер часто бесполезны
Примеры ЦП
- напр. Кнопка "Выполнить" — "распечатать информацию", посчитать.
- напр. Отправить текстовое сообщение — отформатировать байты, отправить байты, проверить, что они были отправлены
Вариант CPU: GPU — графический процессор
- Подобен процессору, но предназначен для обработки изображений.
- Компьютерные игры активно используют GPU
- Современные ЦП в большинстве случаев достаточно быстры, больше энергии уходит на ГП.
2. ОЗУ
- ОЗУ – оперативное запоминающее устройство
- Действует как доска.
- Временное рабочее хранилище, байты
- ОЗУ хранит как код, так и данные (временно)
- напр. открыть изображение в Photoshop
- данные изображения загружаются в байты оперативной памяти - напр. добавление 2 к числу в калькуляторе
- управление байтами в оперативной памяти - "постоянная"
-ОЗУ не является постоянной. Состояние исчезает при выключении питания
-e.g. Вы работаете над документом, затем отключается питание, и вы теряете свою работу (вместо "Сохранить")
ОЗУ — оперативное запоминающее устройство или просто «память». Оперативная память — это оперативная память, которую компьютер использует для хранения кода и данных, которые активно используются. ОЗУ фактически является областью хранения байтов под управлением ЦП. Оперативная память относительно быстра и способна извлекать значение любого конкретного байта за несколько наносекунд (1 наносекунда составляет 1 миллиардную долю секунды). Другая важная особенность ОЗУ заключается в том, что оно сохраняет свое состояние только до тех пор, пока на него подается питание — ОЗУ не является «постоянным» хранилищем.
Предположим, вы работаете на своем компьютере, и он внезапно теряет питание, и экран гаснет. Вы понимаете, что то, над чем вы работали, пропало. Оперативная память была очищена, осталось только то, что вы в последний раз сохранили на диск (ниже).
Примеры оперативной памяти
- В вашем браузере открыто много вкладок
– данные для каждой вкладки находятся в оперативной памяти - Выполняется программа
- код программы находится в оперативной памяти - Программа манипулирует большим изображением
- данные изображения находятся в оперативной памяти - напр. у вас может закончиться оперативная память — вы не сможете открыть новую вкладку или программу, потому что вся оперативная память занята
- Кроме того, теперь телефоны имеют от 2 до 4 ГБ ОЗУ . достаточно для большинства целей
3. Постоянное хранилище: жесткий диск, флэш-накопитель
- Постоянное хранение байтов
- "Постоянный" означает сохранение, даже если питание отключено.
- напр. Жесткий диск — хранит байты в виде магнитного узора на вращающемся диске.
— также известный как «жесткий диск».
— Высокий звук вращения, который вы, возможно, слышали. - Жесткие диски долгое время были основной технологией постоянного хранения данных.
- НО сейчас Flash становится все более популярным.
Видео о том, как работает жесткий диск (Webm — открытый стандартный видеоформат, работает в Firefox и Chrome). 4:30 в видео, чтобы увидеть чтение/запись битов.
Постоянное хранилище, новая технология: флэш-память
- «Флэш-память» – это транзисторная технология постоянного хранения данных.
«твердотельное состояние» – отсутствие движущихся частей. -aka "SSD": твердотельный накопитель - Флэш-память лучше жесткого диска во всех отношениях, но стоит дешевле: быстрее, надежнее, потребляет меньше энергии.
- Флэш дороже в пересчете на байт.
- Форматы: USB-ключ, SD-карта в камере, флэш-память, встроенная в телефон, планшет или компьютер.
- Раньше флэш-память была очень дорогой, поэтому в большинстве компьютеров использовались жесткие диски.
- Flash дешевеет (закон Мура)
- Однако в пересчете на байт жесткие диски по-прежнему значительно дешевле.
- Не путать с проприетарным мультимедийным форматом Adobe Flash.
- Предупреждение: флэш-память не сохраняется вечно. Он может не хранить биты за последние 10 или 20 лет. Никто точно не знает
Постоянное хранилище — долговременное хранилище байтов в виде файлов и папок. Постоянный означает, что байты сохраняются даже при отключении питания. Ноутбук может использовать вращающийся жесткий диск (также известный как «жесткий диск») для постоянного хранения файлов. Или он может использовать «флэш-накопитель», также известный как твердотельный диск (SSD), для хранения байтов на флэш-чипах. Жесткий диск считывает и записывает магнитные узоры на вращающемся металлическом диске для хранения байтов, в то время как флэш-память является «твердотельной»: никаких движущихся частей, только кремниевые чипы с крошечными группами электронов для хранения байтов. В любом случае хранилище является постоянным, т. е. сохраняет свое состояние даже при отключении питания.
Флэш-накопитель работает быстрее и потребляет меньше энергии, чем жесткий диск. Однако в пересчете на байт флэш-память значительно дороже, чем хранилище на жестком диске. Flash дешевеет, поэтому может занять нишу за счет жестких дисков. Флэш-память намного медленнее, чем оперативная память, поэтому она не является хорошей заменой оперативной памяти. Обратите внимание, что Adobe Flash — это несвязанное понятие; это проприетарный медиаформат.
Флэш-память — это то, что лежит в основе USB-накопителей, SD-карт для использования в камерах или встроенной памяти в планшете или телефоне.
Файловая система
- Как организованы байты в постоянном хранилище?
- напр. Байты на флешке?
- "Файловая система" – организация байтов постоянного хранилища, файлов и папок.
- "Файл" — имя, дескриптор блока байтов.
- напр. "flowers.jpg" означает 48 КБ данных изображения.
Жесткий диск или флэш-накопитель обеспечивает постоянное хранение в виде плоской области байтов без особой структуры. Обычно жесткий диск или флэш-диск отформатированы с использованием «файловой системы», которая организует байты в знакомый шаблон файлов и каталогов, где каждый файл и каталог имеют несколько полезное имя, например «resume.txt». Когда вы подключаете диск к компьютеру, компьютер представляет файловую систему диска пользователю, позволяя ему открывать файлы, перемещать файлы и т. д.
По сути, каждый файл в файловой системе относится к блоку байтов, поэтому имя «flowers.jpg» относится к блоку 48 КБ байтов, которые являются данными этого изображения. Фактически файловая система дает пользователю имя (и, возможно, значок) для блока байтов данных и позволяет пользователю выполнять операции с этими данными, например перемещать их, копировать или открывать с помощью программы. Файловая система также отслеживает информацию о байтах: их количество, время последнего изменения.
Microsoft использует проприетарную файловую систему NTFS, а Mac OS X имеет собственный эквивалент HFS+ от Apple. Многие устройства (камеры, MP3-плееры) используют на своих флеш-картах очень старую файловую систему Microsoft FAT32. FAT32 — старая и примитивная файловая система, но она хороша там, где важна широкая поддержка.
Примеры постоянного хранилища
- Это легко понять, так как вы использовали файлы и файловые системы.
- напр. 100 отдельных видеофайлов по 1 ГБ. Требуется 100 ГБ дискового пространства.
Изображения оборудования
Ниже представлены изображения недорогих компьютеров Shuttle с процессором 1,8 ГГц, 512 МБ ОЗУ и жестким диском на 160 ГБ. Примерно в 2008 году он стоил около 200 долларов США. Он сломался и стал классным примером.
- Материнская плата
- Металлический пакет ЦП, удерживаемый рычагом
- Медный радиатор
- Чип процессора в металлическом корпусе
- Радиатор удален.
- Низ упаковки... много соединений (маленькие провода)
Если перевернуть ЦП, видны маленькие позолоченные накладки в нижней части ЦП. Каждая контактная площадка соединена очень тонким проводом с точкой на кремниевом чипе.
Вот изображение другого чипа, но без верхней упаковки. Вы видите кремниевый чип размером с мизинец в центре с выгравированными на нем крошечными деталями транзистора. На краю чипа видны очень тонкие провода, соединяющие части чипа с внешними контактными площадками (лицензия CC, атрибуция 3. пользователь википедии Zephyris)
- Карта оперативной памяти
- Подключается к материнской плате
- Карта на 512 МБ (4 чипа)
Оперативная память состоит из нескольких микросхем, объединенных в небольшую плату, известную как DIMM, которая вставляется в материнскую плату (модуль памяти с двумя встроенными разъемами).Здесь мы видим модуль RAM DIMM, извлеченный из разъема материнской платы. Это модуль DIMM емкостью 512 МБ, состоящий из 4 микросхем. Несколькими годами ранее этот модуль DIMM мог потребовать 8 микросхем для хранения 512 МБ. Закон Мура в действии.
- Жесткий диск объемом 160 ГБ (постоянное хранилище)
- т.е. постоянный
- Подключается к материнской плате стандартным кабелем SATA.
- Флэш-накопитель (другой тип постоянного хранилища)
- т.е. постоянный
- Содержит флэш-чип, твердотельный.
- SD-карта, аналогичная идея
Здесь он разобран, показывая флэш-чип, который фактически хранит байты. Этот чип может хранить около 1 миллиарда бит... сколько это байтов? (A: 8 бит на байт, то есть около 125 МБ)
Вот "SD-карта", которая обеспечивает хранение в камере. Он очень похож на флешку, только другой формы.
Алгоритм – это специальная процедура для решения четко определенной вычислительной задачи. Разработка и анализ алгоритмов лежат в основе всех аспектов информатики: искусственного интеллекта, баз данных, графики, сетей, операционных систем, безопасности и так далее. Разработка алгоритмов — это больше, чем просто программирование. Это требует понимания альтернатив, доступных для решения вычислительной задачи, включая аппаратное обеспечение, сеть, язык программирования и ограничения производительности, которые сопровождают любое конкретное решение. Это также требует понимания того, что значит для алгоритма быть «правильным» в том смысле, что он полностью и эффективно решает поставленную задачу.
Сопутствующее понятие – это разработка конкретной структуры данных, которая позволяет алгоритму работать эффективно. Важность структур данных связана с тем фактом, что основная память компьютера (где хранятся данные) является линейной и состоит из последовательности ячеек памяти, последовательно пронумерованных 0, 1, 2,…. Таким образом, простейшая структура данных представляет собой линейный массив, в котором соседние элементы нумеруются последовательными целочисленными «индексами», а доступ к значению элемента осуществляется по его уникальному индексу. Массив можно использовать, например, для хранения списка имен, а эффективные методы необходимы для эффективного поиска и извлечения конкретного имени из массива. Например, сортировка списка в алфавитном порядке позволяет использовать так называемый метод бинарного поиска, при котором оставшаяся часть списка для поиска на каждом шаге разрезается пополам. Этот метод поиска похож на поиск определенного имени в телефонной книге. Зная, что книга находится в алфавитном порядке, можно быстро перейти на страницу, близкую к странице, содержащей нужное имя. Для эффективной сортировки и поиска списков данных было разработано множество алгоритмов.
Хотя элементы данных хранятся в памяти последовательно, они могут быть связаны друг с другом указателями (по сути, адресами памяти, хранящимися вместе с элементом, чтобы указать, где находится следующий элемент или элементы в структуре), чтобы данные можно было организовать в способами, аналогичными тем, которыми они будут доступны. Простейшая такая структура называется связанным списком, в котором к несмежным элементам можно получить доступ в заранее заданном порядке, следуя указателям от одного элемента в списке к другому. Список может быть циклическим, когда последний элемент указывает на первый, или каждый элемент может иметь указатели в обоих направлениях, образуя двусвязный список. Были разработаны алгоритмы для эффективного управления такими списками путем поиска, вставки и удаления элементов.
Указатели также позволяют реализовывать более сложные структуры данных. Граф, например, представляет собой набор узлов (элементов) и связей (известных как ребра), соединяющих пары элементов. Такой граф может представлять набор городов и соединяющих их автомагистралей, расположение элементов схемы и соединительных проводов на микросхеме памяти или конфигурацию людей, взаимодействующих через социальную сеть. Типичные алгоритмы графа включают стратегии обхода графа, например, как следовать ссылкам от узла к узлу (возможно, искать узел с определенным свойством) таким образом, чтобы каждый узел посещался только один раз. Связанной с этим проблемой является определение кратчайшего пути между двумя заданными узлами на произвольном графе. (См. теорию графов.) Проблема, представляющая практический интерес в сетевых алгоритмах, например, состоит в том, чтобы определить, сколько «сломанных» каналов связи можно допустить, прежде чем связь начнет прерываться. Аналогичным образом, при проектировании микросхем сверхбольшой интеграции (СБИС) важно знать, является ли граф, представляющий схему, плоским, то есть может ли он быть нарисован в двух измерениях без пересечения каких-либо звеньев (соприкосновения проводов). р>
(Вычислительная) сложность алгоритма – это мера количества вычислительных ресурсов (времени и пространства), потребляемых конкретным алгоритмом при его выполнении.Ученые-компьютерщики используют математические меры сложности, которые позволяют им предсказать до написания кода, насколько быстро будет работать алгоритм и сколько памяти ему потребуется. Такие прогнозы являются важным руководством для программистов, реализующих и выбирающих алгоритмы для реальных приложений.
Вычислительная сложность — это континуум, поскольку некоторые алгоритмы требуют линейного времени (то есть необходимое время увеличивается непосредственно с количеством элементов или узлов в списке, графе или обрабатываемой сети), тогда как другие требуют квадратичного или даже экспоненциальное время выполнения (то есть требуемое время увеличивается пропорционально количеству элементов в квадрате или экспоненциально от этого числа). В дальнем конце этого континуума лежит мутное море неразрешимых проблем, решения которых не могут быть эффективно реализованы. Для этих задач ученые-компьютерщики стремятся найти эвристические алгоритмы, которые могут почти решить проблему и выполняться за разумное время.
Еще дальше находятся те алгоритмические проблемы, которые могут быть сформулированы, но неразрешимы; то есть можно доказать, что никакая программа не может быть написана для решения проблемы. Классическим примером неразрешимой алгоритмической проблемы является проблема остановки, которая утверждает, что нельзя написать программу, которая может предсказать, остановится ли какая-либо другая программа после конечного числа шагов. Неразрешимость проблемы остановки имеет прямое практическое значение для разработки программного обеспечения. Например, было бы легкомысленно пытаться разработать программный инструмент, который предсказывает, есть ли в другой разрабатываемой программе бесконечный цикл (хотя наличие такого инструмента было бы чрезвычайно полезным).
Виртуализация – это процесс, который позволяет более эффективно использовать физическое компьютерное оборудование и является основой облачных вычислений.
Что такое виртуализация?
Виртуализация использует программное обеспечение для создания уровня абстракции над компьютерным оборудованием, что позволяет разделить аппаратные элементы одного компьютера — процессоры, память, хранилище и многое другое — на несколько виртуальных компьютеров, обычно называемых виртуальными машинами (ВМ). Каждая виртуальная машина работает под управлением собственной операционной системы (ОС) и ведет себя как независимый компьютер, несмотря на то, что она работает только на части основного компьютерного оборудования.
Из этого следует, что виртуализация позволяет более эффективно использовать физическое компьютерное оборудование и обеспечивает большую отдачу от инвестиций организации в оборудование.
Сегодня виртуализация является стандартной практикой в корпоративной ИТ-архитектуре. Это также технология, которая движет экономикой облачных вычислений. Виртуализация позволяет поставщикам облачных услуг обслуживать пользователей с помощью имеющегося у них физического компьютерного оборудования; это позволяет пользователям облака приобретать только те вычислительные ресурсы, которые им нужны, когда они им нужны, и экономически эффективно масштабировать эти ресурсы по мере роста их рабочих нагрузок.
Дополнительный обзор того, как работает виртуализация, см. в нашем видео «Объяснение виртуализации» (5:20):
Преимущества виртуализации
Виртуализация дает ряд преимуществ операторам центров обработки данных и поставщикам услуг:
- Эффективность использования ресурсов. До виртуализации каждому серверу приложений требовался собственный выделенный физический ЦП. ИТ-специалисты покупали и настраивали отдельный сервер для каждого приложения, которое нужно было запустить. (Из соображений надежности ИТ-отдел предпочел одно приложение и одну операционную систему (ОС) на компьютер.) Каждый физический сервер неизменно использовался недостаточно. Напротив, виртуализация серверов позволяет запускать несколько приложений — каждое на собственной виртуальной машине с собственной ОС — на одном физическом компьютере (обычно на сервере x86) без ущерба для надежности. Это позволяет максимально использовать вычислительную мощность физического оборудования.
- Простое управление. Замена физических компьютеров программно определяемыми виртуальными машинами упрощает использование политик, написанных в программном обеспечении, и управление ими. Это позволяет создавать автоматизированные рабочие процессы управления ИТ-услугами. Например, инструменты автоматического развертывания и настройки позволяют администраторам определять наборы виртуальных машин и приложений как службы в шаблонах программного обеспечения. Это означает, что они могут многократно и последовательно устанавливать эти службы без громоздких и трудоемких операций. и подверженная ошибкам ручная настройка. Администраторы могут использовать политики безопасности виртуализации для обязательной настройки определенных конфигураций безопасности в зависимости от роли виртуальной машины. Политики могут даже повысить эффективность использования ресурсов за счет вывода из эксплуатации неиспользуемых виртуальных машин для экономии места и вычислительной мощности.
- Минимальное время простоя. Сбои ОС и приложений могут привести к простоям и снизить производительность пользователей. Администраторы могут запускать несколько резервных виртуальных машин рядом друг с другом и переключаться между ними при возникновении проблем. Использование нескольких резервных физических серверов обходится дороже.
- Быстрая подготовка. Покупка, установка и настройка оборудования для каждого приложения занимает много времени.При условии, что оборудование уже установлено, подготовка виртуальных машин для запуска всех ваших приложений выполняется значительно быстрее. Вы даже можете автоматизировать его с помощью программного обеспечения для управления и встроить в существующие рабочие процессы.
Более подробные сведения о потенциальных преимуществах см. в разделе "5 преимуществ виртуализации".
Решения
Некоторые компании предлагают решения для виртуализации, охватывающие определенные задачи центра обработки данных или ориентированные на конечных пользователей сценарии виртуализации настольных компьютеров. Более известные примеры включают VMware, которая специализируется на виртуализации серверов, рабочих столов, сетей и систем хранения данных; Citrix, занимающая нишу в области виртуализации приложений, но также предлагающая решения для виртуализации серверов и виртуальных рабочих столов; и Microsoft, чье решение для виртуализации Hyper-V поставляется с Windows и ориентировано на виртуальные версии серверов и настольных компьютеров.
Виртуальные машины (ВМ)
Виртуальные машины – это виртуальные среды, которые имитируют физические вычисления в программной форме. Обычно они состоят из нескольких файлов, содержащих конфигурацию ВМ, хранилище для виртуального жесткого диска и несколько моментальных снимков ВМ, которые сохраняют ее состояние в определенный момент времени.
Полный обзор виртуальных машин см. в разделе "Что такое виртуальная машина?"
Гипервизоры
Гипервизор — это программный уровень, который координирует виртуальные машины. Он служит интерфейсом между виртуальной машиной и базовым физическим оборудованием, гарантируя, что каждый из них имеет доступ к физическим ресурсам, необходимым для выполнения. Это также гарантирует, что виртуальные машины не будут мешать друг другу, нарушая пространство памяти или вычислительные циклы друг друга.
Существует два типа гипервизоров:
- Гипервизоры типа 1, или «голые системы», взаимодействуют с базовыми физическими ресурсами, полностью заменяя традиционную операционную систему. Чаще всего они появляются в сценариях с виртуальными серверами.
- Гипервизоры типа 2 работают как приложение в существующей ОС. Наиболее часто используемые на конечных устройствах для работы с альтернативными операционными системами, они снижают производительность, поскольку должны использовать хост-ОС для доступа и координации базовых аппаратных ресурсов.
«Гипервизоры: полное руководство» содержит исчерпывающий обзор всего, что касается гипервизоров.
Типы виртуализации
До сих пор мы обсуждали виртуализацию серверов, но многие другие элементы ИТ-инфраструктуры могут быть виртуализированы, чтобы предоставить значительные преимущества ИТ-менеджерам (в частности) и предприятию в целом. В этом разделе мы рассмотрим следующие типы виртуализации:
- Виртуализация рабочего стола
- Виртуализация сети
- Виртуализация хранилища
- Виртуализация данных
- Виртуализация приложений
- Виртуализация центра обработки данных
- Виртуализация ЦП
- Виртуализация графического процессора
- Виртуализация Linux
- Облачная виртуализация
Виртуализация рабочего стола
Виртуализация настольных компьютеров позволяет запускать несколько операционных систем для настольных компьютеров, каждая из которых находится на отдельной виртуальной машине на одном компьютере.
Существует два типа виртуализации рабочих столов:
- Инфраструктура виртуальных рабочих столов (VDI) запускает несколько рабочих столов на виртуальных машинах на центральном сервере и передает их пользователям, которые входят в систему на устройствах с тонкими клиентами. Таким образом, VDI позволяет организации предоставлять своим пользователям доступ к различным ОС с любого устройства без установки ОС на какое-либо устройство. См. «Что такое инфраструктура виртуальных рабочих столов (VDI)?» для более подробного объяснения.
- Виртуализация локальных рабочих столов запускает гипервизор на локальном компьютере, позволяя пользователю запускать на этом компьютере одну или несколько дополнительных ОС и переключаться с одной ОС на другую по мере необходимости, ничего не меняя в основной ОС.
Дополнительную информацию о виртуальных рабочих столах см. в разделе «Рабочий стол как услуга (DaaS)».
Виртуализация сети
Виртуализация сети использует программное обеспечение для создания «представления» сети, которое администратор может использовать для управления сетью с единой консоли. Он абстрагирует аппаратные элементы и функции (например, соединения, коммутаторы, маршрутизаторы и т. д.) и абстрагирует их в программное обеспечение, работающее на гипервизоре. Сетевой администратор может изменять эти элементы и управлять ими, не касаясь базовых физических компонентов, что значительно упрощает управление сетью.
Типы виртуализации сети включают в себя программно-определяемые сети (SDN), которые виртуализируют оборудование, управляющее маршрутизацией сетевого трафика (так называемая «плоскость управления»), и виртуализацию сетевых функций (NFV), которые виртуализируют одно или несколько аппаратных устройств, обеспечивающих конкретная сетевая функция (например, брандмауэр, балансировщик нагрузки или анализатор трафика), упрощающая настройку, предоставление и управление этими устройствами.
Виртуализация хранилища
Виртуализация хранилища позволяет получать доступ ко всем устройствам хранения в сети, независимо от того, установлены ли они на отдельных серверах или автономных устройствах хранения, как к одному устройству хранения. В частности, виртуализация хранилища объединяет все блоки хранилища в единый общий пул, из которого они могут быть назначены любой виртуальной машине в сети по мере необходимости. Виртуализация хранилища упрощает выделение хранилища для виртуальных машин и максимально использует все доступное хранилище в сети.
Для более подробного ознакомления с виртуализацией хранилища ознакомьтесь с разделом "Что такое облачное хранилище?"
Виртуализация данных
Современные предприятия хранят данные из нескольких приложений, используя файлы разных форматов, в разных местах, от облачных до локальных аппаратных и программных систем. Виртуализация данных позволяет любому приложению получить доступ ко всем этим данным независимо от источника, формата или местоположения.
Инструменты виртуализации данных создают программный слой между приложениями, получающими доступ к данным, и системами, в которых они хранятся. Уровень преобразует запрос или запрос данных приложения по мере необходимости и возвращает результаты, которые могут охватывать несколько систем. Виртуализация данных может помочь устранить разрозненность данных, когда другие типы интеграции нецелесообразны, желательны или доступны по цене.
Виртуализация приложений
Виртуализация приложений запускает прикладное программное обеспечение, не устанавливая его непосредственно в ОС пользователя. Это отличается от полной виртуализации рабочего стола (упомянутой выше), поскольку в виртуальной среде работает только приложение — ОС на устройстве конечного пользователя работает как обычно. Существует три типа виртуализации приложений:
- Виртуализация локальных приложений. Все приложение работает на конечном устройстве, но в среде выполнения, а не на собственном оборудовании.
- Потоковая передача приложений. Приложение находится на сервере, который при необходимости отправляет небольшие компоненты программного обеспечения для запуска на устройстве конечного пользователя.
- Виртуализация приложений на основе сервера. Приложение полностью работает на сервере, который отправляет на клиентское устройство только свой пользовательский интерфейс.
Виртуализация центра обработки данных
Виртуализация центра обработки данных абстрагирует большую часть оборудования центра обработки данных от программного обеспечения, позволяя администратору эффективно разделить один физический центр обработки данных на несколько виртуальных центров обработки данных для разных клиентов.
Каждый клиент может получить доступ к своей собственной инфраструктуре как услуге (IaaS), которая будет работать на одном и том же базовом физическом оборудовании. Виртуальные центры обработки данных предлагают простой переход к облачным вычислениям, позволяя компании быстро настроить полную среду центра обработки данных, не приобретая инфраструктурное оборудование.
Виртуализация ЦП
Виртуализация ЦП (центрального процессора) — это фундаментальная технология, которая делает возможными гипервизоры, виртуальные машины и операционные системы. Это позволяет разделить один ЦП на несколько виртуальных ЦП для использования несколькими ВМ.
Сначала виртуализация ЦП была полностью программно-определяемой, но многие современные процессоры включают расширенные наборы инструкций, поддерживающие виртуализацию ЦП, что повышает производительность ВМ.
Виртуализация графического процессора
ГП (графический процессор) – это специальный многоядерный процессор, повышающий общую вычислительную производительность за счет выполнения тяжелой графической или математической обработки. Виртуализация графического процессора позволяет нескольким виртуальным машинам использовать всю или часть вычислительной мощности одного графического процессора для более быстрого воспроизведения видео, искусственного интеллекта (ИИ) и других приложений, интенсивно использующих графику или математику.
- Проходные графические процессоры делают весь графический процессор доступным для одной гостевой ОС.
- Общие vGPU делят физические ядра GPU между несколькими виртуальными GPU (vGPU) для использования серверными виртуальными машинами.
Виртуализация Linux
Linux включает собственный гипервизор, называемый виртуальной машиной на основе ядра (KVM), который поддерживает расширения процессоров виртуализации Intel и AMD, поэтому вы можете создавать виртуальные машины на базе x86 из хост-ОС Linux.
Являясь ОС с открытым исходным кодом, Linux обладает широкими возможностями настройки. Вы можете создавать виртуальные машины с версиями Linux, предназначенными для определенных рабочих нагрузок, или версиями с повышенной безопасностью для более важных приложений.
Облачная виртуализация
Как отмечалось выше, модель облачных вычислений зависит от виртуализации. Виртуализируя серверы, хранилища и другие ресурсы физических центров обработки данных, поставщики облачных вычислений могут предлагать клиентам ряд услуг, в том числе следующие:
- Инфраструктура как услуга (IaaS): виртуализированный сервер, хранилище и сетевые ресурсы, которые можно настроить в соответствии с их требованиями.
- Платформа как услуга (PaaS): виртуализированные инструменты разработки, базы данных и другие облачные службы, которые можно использовать для создания собственных облачных приложений и решений.
- Программное обеспечение как услуга (SaaS): программные приложения, которые вы используете в облаке.SaaS – это облачная служба, которая в наибольшей степени абстрагирована от аппаратного обеспечения.
Если вы хотите узнать больше об этих моделях облачных сервисов, см. наше руководство: "IaaS, PaaS и SaaS".
Виртуализация и контейнеризация
Виртуализация серверов воспроизводит весь компьютер на аппаратном уровне, на котором затем работает вся операционная система. ОС запускает одно приложение. Это более эффективно, чем полное отсутствие виртуализации, но все равно дублирует ненужный код и службы для каждого приложения, которое вы хотите запустить.
Контейнеры используют альтернативный подход. Они совместно используют базовое ядро ОС, запуская только приложение и то, от чего оно зависит, например программные библиотеки и переменные среды. Это позволяет уменьшить размер контейнеров и ускорить их развертывание.
Для более глубокого изучения контейнеров и контейнеризации ознакомьтесь с разделами "Контейнеры: полное руководство" и "Контейнеризация: полное руководство".
Прочитайте запись в блоге "Контейнеры и виртуальные машины: в чем разница?" для более близкого сравнения.
В следующем видео Сай Веннам рассказывает об основах контейнеризации и ее сравнении с виртуализацией с помощью виртуальных машин (8:09):
VMware
VMware создает программное обеспечение для виртуализации. VMware начала с предложения только виртуализации серверов — ее гипервизор ESX (теперь ESXi) был одним из первых коммерчески успешных продуктов виртуализации. Сегодня VMware также предлагает решения для виртуализации сетей, хранилищ и рабочих столов.
Безопасность
Виртуализация дает некоторые преимущества в плане безопасности. Например, виртуальные машины, зараженные вредоносным ПО, можно откатить до момента времени (называемого моментальным снимком), когда виртуальная машина была не заражена и работала стабильно; их также легче удалить и создать заново. Не всегда можно вылечить невиртуализированную ОС, поскольку вредоносное ПО часто глубоко интегрировано в основные компоненты ОС и сохраняется после откатов системы.
Виртуализация также создает некоторые проблемы с безопасностью. Если злоумышленник скомпрометирует гипервизор, он потенциально станет владельцем всех виртуальных машин и гостевых операционных систем. Поскольку гипервизоры также позволяют виртуальным машинам обмениваться данными между собой, не касаясь физической сети, может быть сложно увидеть их трафик и, следовательно, обнаружить подозрительную активность.
Гипервизор типа 2 на хост-ОС также подвержен компрометации хост-ОС.
На рынке представлен ряд продуктов для обеспечения безопасности виртуализации, которые могут сканировать и исправлять ВМ на наличие вредоносного ПО, шифровать виртуальные диски ВМ целиком, а также контролировать и проверять доступ к ВМ.
Виртуализация и IBM
IBM Cloud предлагает полный набор облачных решений для виртуализации, от общедоступных облачных сервисов до частных и гибридных облачных сервисов. Вы можете использовать его для создания и запуска виртуальной инфраструктуры, а также воспользоваться услугами, начиная от облачного искусственного интеллекта и заканчивая миграцией рабочих нагрузок VMware с помощью решений IBM Cloud for VMware.
Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.
Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.
Информатика — это изучение компьютеров и вычислений, а также их теоретических и практических приложений. Информатика применяет принципы математики, инженерии и логики во множестве функций, включая формулирование алгоритмов, разработку программного и аппаратного обеспечения и искусственный интеллект.
Самые влиятельные ученые-компьютерщики – Алан Тьюринг, взломщик кодов времен Второй мировой войны, которого обычно называют "отцом современных вычислений"; Тим Бернерс-Ли, изобретатель Всемирной паутины; Джон Маккарти, изобретатель языка программирования LISP и пионер искусственного интеллекта; и Грейс Хоппер, офицер ВМС США и ключевая фигура в разработке первых компьютеров, таких как UNIVAC I, а также в разработке компилятора языка программирования.
Информатика применяется в широком спектре дисциплин, включая моделирование последствий изменения климата и вируса Эбола, создание произведений искусства и визуализацию с помощью графического рендеринга, а также моделирование человеческого интерфейса с помощью искусственного интеллекта и машинного обучения.< /p>
Разработка видеоигр основана на принципах информатики и программирования. Современный рендеринг графики в видеоиграх часто использует передовые методы, такие как трассировка лучей, для обеспечения реалистичных эффектов. Развитие дополненной реальности и виртуальной реальности также расширило спектр возможностей разработки видеоигр.
Многие университеты по всему миру предлагают программы обучения основам теории информатики и применениям компьютерного программирования.Кроме того, распространенность онлайн-ресурсов и курсов позволяет многим людям самостоятельно изучать более практические аспекты информатики (такие как программирование, разработка видеоигр и дизайн приложений).
информатика, изучение компьютеров и вычислений, включая их теоретические и алгоритмические основы, аппаратное и программное обеспечение, а также их использование для обработки информации. Дисциплина информатики включает изучение алгоритмов и структур данных, проектирование компьютеров и сетей, моделирование данных и информационных процессов, а также искусственный интеллект. Информатика черпает некоторые из своих основ из математики и инженерии и поэтому включает в себя методы из таких областей, как теория массового обслуживания, вероятность и статистика, а также проектирование электронных схем. Информатика также широко использует проверку гипотез и экспериментирование при концептуализации, проектировании, измерении и уточнении новых алгоритмов, информационных структур и компьютерных архитектур.
Информатика считается частью семейства пяти отдельных, но взаимосвязанных дисциплин: компьютерная инженерия, информатика, информационные системы, информационные технологии и разработка программного обеспечения. Это семейство стало известно под общим названием компьютерной дисциплины. Эти пять дисциплин взаимосвязаны в том смысле, что компьютеры являются объектом их изучения, но они разделены, поскольку каждая из них имеет свою собственную исследовательскую перспективу и учебную направленность. (С 1991 года Ассоциация вычислительной техники [ACM], Компьютерное общество IEEE [IEEE-CS] и Ассоциация информационных систем [AIS] сотрудничают в разработке и обновлении таксономии этих пяти взаимосвязанных дисциплин и руководств, которые образовательные учреждения использовать во всем мире для своих программ бакалавриата, магистратуры и исследовательских программ.)
Основные разделы информатики включают традиционное изучение компьютерной архитектуры, языков программирования и разработки программного обеспечения. Однако они также включают вычислительную науку (использование алгоритмических методов для моделирования научных данных), графику и визуализацию, взаимодействие человека и компьютера, базы данных и информационные системы, сети, а также социальные и профессиональные проблемы, которые являются уникальными для практики информатики. . Как может быть очевидно, некоторые из этих подполей пересекаются по своей деятельности с другими современными областями, такими как биоинформатика и вычислительная химия. Эти совпадения являются следствием склонности ученых-компьютерщиков признавать многочисленные междисциплинарные связи в своей области и действовать в соответствии с ними.
Развитие информатики
Информатика возникла как самостоятельная дисциплина в начале 1960-х годов, хотя электронный цифровой компьютер, являющийся объектом ее изучения, был изобретен на два десятилетия раньше. Корни информатики лежат в основном в смежных областях математики, электротехники, физики и информационных систем управления.
Математика является источником двух ключевых концепций разработки компьютеров — идеи о том, что вся информация может быть представлена в виде последовательности нулей и единиц, и абстрактного понятия «хранимой программы». В двоичной системе счисления числа представляются последовательностью двоичных цифр 0 и 1 точно так же, как числа в знакомой нам десятичной системе представляются цифрами от 0 до 9. Относительная легкость, с которой два состояния (например, высокое и низкое напряжение) могут быть реализованы в электрических и электронных устройствах, что естественным образом привело к тому, что двоичная цифра или бит стала основной единицей хранения и передачи данных в компьютерной системе.
Электротехника обеспечивает основы проектирования цепей, а именно идею о том, что электрические импульсы, поступающие в цепь, можно комбинировать с помощью булевой алгебры для получения произвольных выходных сигналов. (Булева алгебра, разработанная в 19 веке, предоставила формализм для проектирования схемы с двоичными входными значениями нулей и единиц [ложь или истина, соответственно, в терминологии логики], чтобы получить любую желаемую комбинацию нулей и единиц на выходе.) Изобретение транзистора и миниатюризация схем, а также изобретение электронных, магнитных и оптических носителей для хранения и передачи информации стали результатом достижений электротехники и физики.
Информационные системы управления, первоначально называвшиеся системами обработки данных, предоставили ранние идеи, на основе которых развились различные концепции информатики, такие как сортировка, поиск, базы данных, поиск информации и графические пользовательские интерфейсы. В крупных корпорациях размещались компьютеры, на которых хранилась информация, необходимая для ведения бизнеса: начисление заработной платы, бухгалтерский учет, управление запасами, контроль производства, отгрузка и получение.
Теоретическая работа над вычислительностью, начавшаяся в 1930-х годах, обеспечила необходимое распространение этих достижений на проектирование целых машин; важной вехой стала спецификация машины Тьюринга (теоретическая вычислительная модель, которая выполняет инструкции, представленные в виде последовательности нулей и единиц) в 1936 году британским математиком Аланом Тьюрингом и его доказательство вычислительной мощности модели. Еще одним прорывом стала концепция компьютера с хранимой в памяти программой, которую обычно приписывают американскому математику венгерского происхождения Джону фон Нейману. Это истоки области информатики, которая позже стала известна как архитектура и организация.
В 1950-х годах большинство пользователей компьютеров работали либо в научно-исследовательских лабораториях, либо в крупных корпорациях. Первая группа использовала компьютеры для выполнения сложных математических расчетов (например, траектории ракет), в то время как вторая группа использовала компьютеры для управления большими объемами корпоративных данных (например, платежных ведомостей и запасов). Обе группы быстро поняли, что писать программы на машинном языке нулей и единиц непрактично и ненадежно. Это открытие привело к разработке языка ассемблера в начале 1950-х годов, который позволяет программистам использовать символы для инструкций (например, ADD для сложения) и переменных (например, X). Другая программа, известная как ассемблер, переводила эти символические программы в эквивалентную двоичную программу, шаги которой компьютер мог выполнять или «выполнять».
Другие элементы системного программного обеспечения, известные как связывающие загрузчики, были разработаны для объединения фрагментов собранного кода и загрузки их в память компьютера, где они могли выполняться. Концепция связывания отдельных фрагментов кода была важна, поскольку позволяла повторно использовать «библиотеки» программ для выполнения общих задач. Это был первый шаг в развитии области компьютерных наук, называемой разработкой программного обеспечения.
Позже, в 1950-х годах, язык ассемблера оказался настолько громоздким, что разработка языков высокого уровня (более близких к естественным языкам) стала поддерживать более простое и быстрое программирование. FORTRAN стал основным языком высокого уровня для научного программирования, а COBOL стал основным языком для бизнес-программирования. Эти языки несли с собой потребность в другом программном обеспечении, называемом компилятором, которое переводит программы на языке высокого уровня в машинный код. По мере того, как языки программирования становились все более мощными и абстрактными, создание компиляторов, создающих высококачественный машинный код и эффективных с точки зрения скорости выполнения и использования памяти, стало сложной задачей в области информатики. Разработка и реализация языков высокого уровня лежит в основе области компьютерных наук, называемой языками программирования.
Расширение использования компьютеров в начале 1960-х послужило толчком к разработке первых операционных систем, которые состояли из системно-резидентного программного обеспечения, которое автоматически обрабатывало ввод и вывод, а также выполняло программы, называемые «заданиями». Потребность в более совершенных вычислительных методах привела к возрождению интереса к численным методам и их анализу, и эта деятельность распространилась настолько широко, что стала известна как вычислительная наука.
В 1970-х и 80-х годах появились мощные компьютерные графические устройства, как для научного моделирования, так и для других видов визуальной деятельности. (Компьютерные графические устройства были представлены в начале 1950-х годов с отображением грубых изображений на бумажных графиках и экранах электронно-лучевых трубок [ЭЛТ].) Дорогое оборудование и ограниченная доступность программного обеспечения не позволяли этой области расти до начала 1980-х годов, когда компьютерная память, необходимая для растровой графики (в которой изображение состоит из маленьких прямоугольных пикселей), стала более доступной. Технология растровых изображений вместе с экранами с высоким разрешением и разработкой графических стандартов, которые делают программное обеспечение менее зависимым от машин, привели к взрывному росту этой области. Поддержка всех этих видов деятельности превратилась в область информатики, известную как графика и визуальные вычисления.
С этой областью тесно связано проектирование и анализ систем, которые напрямую взаимодействуют с пользователями, выполняющими различные вычислительные задачи. Эти системы получили широкое распространение в 1980-х и 90-х годах, когда линейное взаимодействие с пользователями было заменено графическими пользовательскими интерфейсами (GUI). Дизайн графического пользовательского интерфейса, который впервые был разработан Xerox, а затем был подхвачен Apple (Macintosh) и, наконец, Microsoft (Windows), важен, поскольку он представляет собой то, что люди видят и делают, взаимодействуя с вычислительным устройством. Разработка подходящих пользовательских интерфейсов для всех типов пользователей превратилась в область информатики, известную как взаимодействие человека с компьютером (HCI).
Xerox Alto был первым компьютером, в котором для управления системой использовались графические значки и мышь — первый графический интерфейс пользователя (GUI).
Область компьютерной архитектуры и организации также претерпела значительные изменения с тех пор, как в 1950-х годах были разработаны первые компьютеры с хранимой в памяти программой. В 1960-х годах появились так называемые системы с разделением времени, позволяющие нескольким пользователям одновременно запускать программы с разных терминалов, жестко подключенных к компьютеру. В 1970-е годы были разработаны первые глобальные компьютерные сети (WAN) и протоколы для передачи информации на высоких скоростях между компьютерами, разделенными большими расстояниями. По мере развития этих видов деятельности они объединились в область компьютерных наук, называемую сетями и коммуникациями. Крупным достижением в этой области стало развитие Интернета.
Идея о том, что инструкции и данные могут храниться в памяти компьютера, имела решающее значение для фундаментальных открытий, касающихся теоретического поведения алгоритмов. То есть такие вопросы, как «Что можно/нельзя вычислить?» были официально рассмотрены с использованием этих абстрактных идей. Эти открытия положили начало области информатики, известной как алгоритмы и сложность. Ключевой частью этой области является изучение и применение структур данных, подходящих для различных приложений. Структуры данных, наряду с разработкой оптимальных алгоритмов для вставки, удаления и поиска данных в таких структурах, являются серьезной проблемой для ученых-компьютерщиков, поскольку они так интенсивно используются в компьютерном программном обеспечении, особенно в компиляторах, операционных системах, файловых системах и т. д. и поисковые системы.
В 1960-х годах изобретение накопителей на магнитных дисках обеспечило быстрый доступ к данным, расположенным в произвольном месте на диске. Это изобретение привело не только к более продуманным файловым системам, но и к развитию баз данных и систем поиска информации, которые позже стали необходимы для хранения, поиска и передачи больших объемов и разнообразных данных через Интернет. Эта область информатики известна как управление информацией.
Еще одной долгосрочной целью исследований в области компьютерных наук является создание вычислительных машин и роботизированных устройств, способных выполнять задачи, которые обычно считаются требующими человеческого интеллекта. К таким задачам относятся движение, зрение, слух, речь, понимание естественного языка, мышление и даже проявление человеческих эмоций. Область информатики интеллектуальных систем, первоначально известная как искусственный интеллект (ИИ), на самом деле возникла еще до появления первых электронных компьютеров в 1940-х годах, хотя термин искусственный интеллект появился только в 1956 году.
Три достижения в области вычислительной техники в начале 21 века — мобильные вычисления, клиент-серверные вычисления и взлом компьютеров – способствовали появлению трех новых областей компьютерных наук: разработка на основе платформ, параллельные и распределенные вычисления, и обеспечение безопасности и информации. Платформенная разработка — это изучение особых потребностей мобильных устройств, их операционных систем и их приложений. Параллельные и распределенные вычисления касаются разработки архитектур и языков программирования, которые поддерживают разработку алгоритмов, компоненты которых могут работать одновременно и асинхронно (а не последовательно), чтобы лучше использовать время и пространство. Безопасность и обеспечение информации связаны с проектированием вычислительных систем и программного обеспечения, которые защищают целостность и безопасность данных, а также конфиденциальность лиц, для которых эти данные характерны.
Наконец, особую озабоченность компьютерных наук на протяжении всей их истории вызывает уникальное общественное влияние, которое сопровождает исследования в области компьютерных наук и технологические достижения. Например, с появлением Интернета в 1980-х разработчикам программного обеспечения необходимо было решить важные вопросы, связанные с информационной безопасностью, личной конфиденциальностью и надежностью системы. Кроме того, вопрос о том, является ли программное обеспечение интеллектуальной собственностью, и связанный с ним вопрос «Кому оно принадлежит?» породила совершенно новую правовую область лицензирования и стандартов лицензирования, которые применялись к программному обеспечению и связанным с ним артефактам. Эти и другие проблемы составляют основу социальных и профессиональных проблем информатики, и они появляются почти во всех других областях, указанных выше.
Подводя итог, можно сказать, что дисциплина компьютерных наук превратилась в следующие 15 отдельных областей:
Читайте также: