Основы компьютерной грамотности
- (Правильный ответ) это кабель питания
- это USB кабель для подключения флешки
- это SATA кабель для подключения оптического привода
- это SATA кабель для подключения винчестера
- для постоянного хранения информации, часто используемой в работе
- для подключения периферийных устройств к процессору
- (Правильный ответ) для отображения текстовой и графической информации
- для управления работой ПК по заданной программе
Пользовательский интерфейс и его разновидности
Пользовательский интерфейс — это совокупность средств и правил взаимодействия человека и компьютера.
По мере развития и совершенствования компьютерной техники разрабатывались различные варианты пользовательских интерфейсов.
На компьютерах, оперировавших только числами и символами, был реализован командный интерфейс (рис. 2.11):
- команда подавалась с помощью последовательности символов (командной строки);
- компьютер сопоставлял поступившую команду с имеющимся в его памяти набором команд;
- выполнялось действие, соответствующее поступившей команде.
Таким образом, для взаимодействия с компьютером человек должен был хорошо знать множество команд для управления устройствами и оперирования данными.
Режим командной строки используется специалистами и в наши дни. Во-первых, он обеспечивает минимальный расход памяти. Во-вторых, в современном программном обеспечении имеется большое число команд, многие из которых используются крайне редко. Набор такой команды в командной строке осуществляется гораздо быстрее, чем, например, навигацией по меню. В-третьих, специалисты могут записать последовательность команд в отдельный исполняемый файл (командный файл), что повышает эффективность работы с программным обеспечением.
Необходимость запоминать многочисленные команды отпала с появлением графических интерфейсов. Первые графические интерфейсы обеспечивали возможность с помощью клавиш или манипулятора «мышь»:
- подводить курсор к той или иной части экрана;
- выделять на экране имя файла или команду другим цветом;
- оперировать выделенными данными независимо от других.
В наши дни взаимодействие человека и компьютера строится на основе объектно-ориентированного графического интерфейса, в котором:
- все объекты представляются в виде значков (иконок, пиктограмм), выбор которых с помощью, например, мыши приводит к активизации соответствующих объектов;
- оперирование объектами осуществляется в окнах — заранее заданных, очерченных рамками частях экрана;
- основным элементом программного управления является меню — выводимый на экран список команд, которые можно задать компьютеру;
- основным элементом аппаратного управления являются различные манипуляторы (мышь, трекбол, сенсорная панель и т. д.).
Каждый компьютерный объект имеет своё имя и графическое обозначение. Например:
Объекты обладают определёнными свойствами. Например:
С объектами можно совершать разнообразные действия. Например:
Основным элементом аппаратного управления компьютером в пользовательском интерфейсе является мышь, отображаемая на экране в виде указателя мыши — небольшого графического объекта, который перемещается по экрану при движении мыши. Он используется для того, чтобы указывать на различные объекты, запускать программы, выбирать пункты меню, перетаскивать объекты, выделять текст и пр. Чаще указатель выглядит как маленькая стрелка, но его вид меняется в зависимости от операций, которые выполняет пользователь. Так, если указатель имеет форму маленьких песочных часов, это означает, что компьютер занят выполнением какой-то операции. А если указатель мыши принимает вид перечёркнутого круга, это означает, что запрашиваемая операция в данном случае невозможна.
Основными приёмами управления с помощью мыши являются:
- щелчок — быстрое нажатие и отпускание левой кнопки мыши;
- двойной щелчок — два щелчка, выполненные с малым интервалом времени между ними;
- щелчок правой кнопкой,
- перетаскивание — сопровождается перемещением экранного объекта, на котором установлен указатель;
- протягивание — происходит изменение формы экранного объекта;
- наведение указателя мыши на значок объекта или на элемент управления и задержка его на некоторое время — обычно на экране появляется всплывающая подсказка, кратко характеризующая свойства объекта.
Интуитивная понятность объектно-ориентированного графического интерфейса объясняется тем, что в нём реализованы аналогии с привычными человеку прямым манипулированием конкретными объектами и визуализацией результатов производимых действий. Действительно, при выполнении какой-либо операции пользователь сначала выбирает объект, а затем — действие над этим объектом; мышь позволяет осуществлять прямое манипулирование выбранным объектом. Так, для копирования файла с одного каталога в другой уже не нужно набирать в командной строке определённую последовательность символов. Достаточно выделить щелчком пиктограмму предназначенного для копирования файла в окне содержащего его каталога и перетащить её в окно или на пиктограмму другого каталога. Результатом копирования файла будет его изображение в окне нового каталога.
В наши дни большое внимание уделяется разработке дружественных интерфейсов, предоставляющих пользователям наиболее удобные способы взаимодействия с программным обеспечением за счёт логичности и простоты в расположении элементов управления, используемой цветовой гаммы, формы объектов и т. д. При этом учитываются психологические особенности восприятия информации человеком.
Сколько раз современные флешки могуть перезаписывать информацию?
- (Правильный ответ) тысячи раз
- несколько раз
- сотни раз
- десятки раз
- количество точек на миллиметр
- количество точек на сантиметр
- (Правильный ответ) количество точек на дюйм
- количество точек на метр
Программный код
Программных кодов, как и языков программирования, на которых их пишут, масса.
В первую очередь, языки программирования отличаются аппаратурой, на которую установятся готовые программы. Стиральная машина и микроволновая печь не прихотливы, в сравнении с Оперативной Системой компьютера или смартфона. Машинные языки программирования не многословны, во всех смыслах. Содержат минимальный набор команд, относительно короткие алгоритмы и не высокое количество циклов повтора. Сложные системы с разветвленными алгоритмами богаты набором используемых команд и методов построения «предложений».
Во-вторую очередь, программирование различается по объекту, который управляет программой. Управлять программой может машина или человек. Если это человек, язык обязан содержать в себе ряд функций для доступа пользователя к настройкам управления: кнопочки, списки, закладки и т.д. Машина справляется без них.
Можно совмещать объектно-ориентированное (управляет человек) и не объектно-ориентированное программирование. «Мостом» выступает компьютер: доступный и понятный интерфейс позволяет пользователю без труда совершать старт машинного алгоритма по «кнопкам» на ПК, после чего компьютер передает сигнал машине, запускает в ней алгоритм, не доступный пользователю, и работа успешно выполняется.
Яркий пример удаленной работы, при которой человек с компьютера частично управляет огромным механизмом – защитный «колпак» над Чернобыльской АС. Контроль над объектом осуществляется при помощи программного обеспечение, отслеживание осуществляется за счет специальных датчиков, камер и т. д. при визуальном содействии человека. Прямого доступа к объекту человек не имеет, но регулировать состояние, просматривать отчетность и частично управлять рядом элементов оператор может.
Правила, рекомендации и предупреждения
По мере изучения этих руководств мы будем выделять важные моменты в следующих трех категориях:
Правило
Правила – это инструкции, которые вы должны выполнять в соответствии с требованиями языка. Несоблюдение правил обычно приводит к тому, что ваша программа не работает.
Лучшая практика
Лучшие практики – это то, что вам следует делать, потому что такой способ обычно считается стандартным или настоятельно рекомендуется. То есть либо так поступают все (а если вы поступите иначе, то вы будете делать не то, что ожидают), либо это лучше других альтернатив.
Предупреждение
Предупреждения – это то, чего делать не следует, поскольку они обычно приводят к неожиданным результатам.
СОДЕРЖАНИЕ
Разработанная Аланом Тьюрингом в 1946 году автоматическая вычислительная машина (ACE) имела многие характеристики архитектуры RISC. Ряд систем, восходящих к 1960-м годам, считался первой архитектурой RISC, отчасти благодаря использованию в них подхода « загрузка / сохранение» . Термин RISC был придуман Дэвидом Паттерсоном из проекта Berkeley RISC , хотя несколько схожие концепции появлялись и раньше.
CDC 6600 разработан Seymour Cray в 1964 году использовал загрузки / сохранение архитектуру только с двумя режимами адресации (регистр + регистр, и регистрируют + немедленные постоянный) и 74 кодов операций, причем базовый такт быть в 10 раз быстрее , чем время доступа к памяти . Отчасти из-за оптимизированной архитектуры загрузки / сохранения CDC 6600, Джек Донгарра говорит, что ее можно считать предшественником современных систем RISC, хотя для разработки современной системы RISC необходимо было преодолеть ряд других технических барьеров.
IBM 801
Майкл Дж. Флинн рассматривает первую систему RISC как разработку IBM 801 , начатую в 1975 году Джоном Коке и завершенную в 1980 году. Модель 801 была разработана в результате усилий по созданию 24-битного высокоскоростного процессора для использования в качестве основы для цифровой телефонный коммутатор . Для достижения цели переключения 300 вызовов в секунду (1 миллион в час) они подсчитали, что центральному процессору требуется производительность порядка 12 MIPS по сравнению с их самым быстрым мейнфреймом того времени, 370/168, который работал со скоростью 3,5 MIPS.
Дизайн был основан на исследовании обширного набора статистических данных IBM по существующим платформам. Это продемонстрировало, что код в высокопроизводительных настройках широко использует регистры и что они часто заканчиваются. Это предполагает, что дополнительные регистры еще больше улучшат производительность. Кроме того, они заметили, что компиляторы обычно игнорируют подавляющее большинство доступных инструкций, особенно режимы ортогональной адресации . Вместо этого они выбрали самую быструю версию любой данной инструкции, а затем построили небольшие подпрограммы, используя ее. Это говорит о том, что большинство инструкций можно удалить, не влияя на результирующий код. Эти два вывода работали согласованно; удаление инструкций позволило бы сделать коды инструкций короче, высвободив биты в инструкции, которые затем можно было бы использовать для выбора из большего набора регистров.
Программа телефонных коммутаторов была отменена в 1975 году, но к тому времени команда продемонстрировала, что такая же конструкция обеспечит значительный прирост производительности при работе практически с любым кодом. В ходе моделирования они показали, что компилятор, настроенный на использование регистров везде, где это возможно, будет запускать код примерно в три раза быстрее, чем в традиционных проектах. Несколько удивительно, что тот же код будет работать примерно на 50% быстрее даже на существующих машинах из-за улучшенного использования регистров. На практике их экспериментальный компилятор PL / 8, немного урезанная версия PL / 1 , последовательно создавал код, который работал намного быстрее на их мэйнфреймах.
32-разрядная версия 801 в конечном итоге была выпущена в виде однокристальной версии IBM ROMP в 1981 году, что расшифровывалось как «микропроцессор Research OPD [подразделение офисных продуктов]». Этот ЦП был разработан для «мини» задач и также использовался в ПК IBM RT в 1986 году, что оказалось коммерческим провалом. Но 801 вдохновил на несколько исследовательских проектов, включая новые в IBM, которые в конечном итоге привели к архитектуре набора команд IBM POWER .
RISC и MIPS
К концу 1970-х годов модель 801 стала хорошо известна в отрасли. Это совпало с появлением новых технологий производства, которые позволили появиться на рынке более сложным микросхемам. Zilog Z80 1976 года было 8000 транзисторов, в то время как 1979 Motorola 68000 (68k) было 68000. В этих новых разработках обычно использовалась вновь обретенная сложность для расширения набора команд, чтобы сделать его более ортогональным. Большинство из них, например 68k, использовали для этого микрокод , считывая инструкции и повторно воплощая их в виде последовательности более простых внутренних инструкций. В 68k, полный 1 / 3 из транзисторов были использованы для этой microcoding.
В 1979 году Дэвид Паттерсон был отправлен в творческий отпуск из Калифорнийского университета в Беркли, чтобы помочь команде DEC на западном побережье улучшить микрокод VAX. Паттерсон был поражен сложностью процесса кодирования и пришел к выводу, что это несостоятельно. Сначала он написал статью о способах улучшения микрокодирования, но позже передумал и решил, что проблема заключается в самом микрокоде. При финансовой поддержке программы DARPA VLSI Паттерсон начал проект Berkeley RISC . Программа, практически неизвестная сегодня, привела к огромному количеству достижений в области проектирования, изготовления микросхем и даже компьютерной графики. Рассматривая множество программ из своего варианта BSD Unix , команда Беркли, как и IBM, обнаружила, что большинство программ не используют большое количество инструкций 68k.
Ранние работы Паттерсона указали на важную проблему традиционного подхода «больше — значит лучше»; даже те инструкции, которые были критически важны для общей производительности, задерживались из-за их прохождения через микрокод. Если бы микрокод был удален, программы работали бы быстрее. А поскольку микрокод в конечном итоге взял сложную инструкцию и разбил ее на шаги, не было причин, по которым компилятор не мог сделать это вместо этого. Эти исследования показали, что, даже без каких — либо других изменений, можно было бы сделать чип с 1 / +3 меньшим количеством транзисторов , которые будут работать быстрее. Команда 801 IBM также заметила это; когда компиляторы сталкивались с выбором возможных кодов операций, они выбирали тот, который, как было известно авторам, был оптимизирован для наиболее быстрой работы. Это означало, что микрокод, который построил последовательность операций для выполнения кода операции, всегда делал одно и то же снова и снова. Эта задача привела к задержке, которую можно было устранить, если бы микрокод был удален, а один фактически используемый код операции был напрямую доступен компилятору.
Также было обнаружено, что в микрокодированных реализациях определенных архитектур сложные операции, как правило, медленнее, чем последовательность более простых операций, выполняющих то же самое. Частично это было результатом того факта, что многие разработки были торопливыми, и на оптимизацию или настройку каждой инструкции оставалось мало времени; были оптимизированы только наиболее часто используемые, и последовательность этих инструкций могла быть быстрее, чем менее настроенная инструкция, выполняющая эквивалентную операцию, как эта последовательность. Один печально известный пример был VAX «s INDEX инструкции.
Работа в Беркли также выявила ряд дополнительных моментов. Среди них был тот факт, что программы тратили значительное количество времени на выполнение вызовов и возвратов подпрограмм, и казалось, что существует потенциал для повышения общей производительности за счет ускорения этих вызовов. Это привело к тому, что разработчики Беркли выбрали метод, известный как окна регистров, который может значительно улучшить производительность подпрограмм, хотя и за счет некоторой сложности. Они также заметили , что большинство математических инструкций были простыми задания, только 1 / 3 из них на самом деле выполняются операции , как сложение или вычитание. Но когда эти операции действительно происходили, они, как правило, были медленными. Это привело к гораздо большему вниманию к базовому блоку арифметических данных, в отличие от предыдущих разработок, где большая часть микросхемы была предназначена для управления и микрокода.
Получившийся в результате Berkeley RISC был основан на повышении производительности за счет использования конвейерной обработки и активного использования окон регистров. В традиционном процессоре имеется небольшое количество регистров, и программа может использовать любой регистр в любое время. В ЦП с окнами регистров существует огромное количество регистров, например 128, но программы могут использовать только небольшое их количество, например восемь, одновременно. Программа, ограничивающая себя восемью регистрами на процедуру, может выполнять очень быстрые вызовы процедур : вызов просто перемещает окно «вниз» на восемь до набора из восьми регистров, используемых этой процедурой, а возврат перемещает окно назад. В рамках проекта Berkeley RISC в 1982 году был поставлен процессор RISC-I. Состоящий всего из 44 420 транзисторов (по сравнению со средним числом около 100 000 в более новых конструкциях CISC того времени), RISC-I имел всего 32 инструкции, но при этом полностью превосходил любой другой однокристальный процессор. дизайн. За этим последовали транзисторы 40760, 39 инструкций RISC-II в 1983 году, которые работали в три раза быстрее, чем RISC-I.
Когда проект RISC стал известен в Кремниевой долине , аналогичный проект начался в Стэнфордском университете в 1981 году. Этот проект MIPS вырос из аспирантского курса Джона Л. Хеннесси , в 1983 году была создана функционирующая система, и он мог запускать простые программы с помощью 1984. В подходе MIPS особое внимание уделялось агрессивному тактовому циклу и использованию конвейера, гарантируя, что он может работать как можно более «полно». За системой MIPS последовала MIPS-X, а в 1984 году Хеннесси и его коллеги основали MIPS Computer Systems . Результатом коммерческого предприятия стала новая архитектура, которая также называлась MIPS, и микропроцессор R2000 в 1985 году.
Общая философия концепции RISC была широко понята во второй половине 1980-х годов и побудила разработчиков MIPS-X сформулировать ее так в 1987 году:
Целью любого формата команд должно быть: 1. простое декодирование, 2. простое декодирование и 3. простое декодирование. Любые попытки улучшить плотность кода за счет производительности процессора должны высмеиваться при каждой возможности.
Коммерческий прорыв
В начале 1980-х годов концепция RISC окружала значительную неопределенность. Одна проблема связана с использованием памяти; одна инструкция традиционного процессора, такого как 68k, может быть записана как полдюжины более простых инструкций RISC. Теоретически это могло замедлить работу системы, поскольку она тратила больше времени на выборку инструкций из памяти. Но к середине 1980-х концепции стали достаточно зрелыми, чтобы их можно было рассматривать как коммерчески жизнеспособные.
Коммерческие проекты RISC начали появляться в середине 1980-х годов. Первый MIPS R2000 появился в январе 1986 года, вскоре после этого Hewlett Packard «s PA-RISC в некоторых из своих компьютеров. Тем временем работа Беркли стала настолько известной, что в конечном итоге стала названием всей концепции. В 1987 году Sun Microsystems начала поставки систем с процессором SPARC , непосредственно основанным на системе Berkeley RISC II. Комитет правительства США по инновациям в вычислениях и коммуникациях считает признание жизнеспособности концепции RISC успехом системы SPARC. Успех SPARC возобновил интерес в IBM, которая к 1990 году выпустила новые системы RISC, а к 1995 году процессоры RISC стали основой серверной индустрии с оборотом 15 миллиардов долларов.
К концу 1980-х годов новые конструкции RISC легко превосходили все традиционные конструкции с большим отрывом. С этого момента все другие поставщики начали собственные разработки RISC. Среди них были DEC Alpha , AMD Am29000 , Intel i860 и i960 , Motorola 88000 , IBM POWER и, чуть позже, IBM / Apple / Motorola PowerPC . Многие из них с тех пор исчезли из-за того, что часто не предлагали никаких конкурентных преимуществ перед другими продуктами той же эпохи. Те, что остались, часто используются только на нишевых рынках или как части других систем, только SPARC и POWER имеют какой-либо значительный оставшийся рынок. Особняком стоит компания ARM , которая в партнерстве с Apple разработала дизайн с низким энергопотреблением, а затем специализировалась на этом рынке, который в то время был нишей. С развитием мобильных вычислений, особенно после появления iPhone , ARM в настоящее время является наиболее широко используемым высокопроизводительным процессором на рынке.
Конкуренция между RISC и традиционными подходами CISC также была предметом теоретического анализа в начале 1980-х годов, что привело, например, к железному закону производительности процессоров .
С 2010 года в Калифорнийском университете в Беркли для исследовательских целей и в качестве бесплатной альтернативы проприетарным ISA разрабатывается новая архитектура набора команд с открытым исходным кодом (ISA), RISC-V . По состоянию на 2014 год исправлена версия 2 ISA пользовательского пространства . ISA разработан с возможностью расширения от базового ядра, достаточного для небольшого встроенного процессора, до использования суперкомпьютеров и облачных вычислений со стандартными расширениями и сопроцессорами, определенными разработчиками микросхем. Он был протестирован в кремниевом исполнении с ROCKET SoC, который также доступен как генератор процессоров с открытым исходным кодом на языке CHISEL.