Изучение аппаратного и программного обеспечения персонального компьютера. Основы программирования на языке С++. 2

КУРСОВАЯ  РАБОТА

 
 
 

     по  дисциплине: «информатика» 

     Тема: «Изучение аппаратного и программного обеспечения персонального компьютера. Основы программирования на языке С++.»  

                                                             

Разраб. cтудент(ка)

                                             Группа        подпись, дата       инициалы, фамилия 

Руководитель         

                                                                                           подпись, дата       инициалы, фамилия 

Члены комиссии              ____________________________________

                                                                                           подпись, дата       инициалы, фамилия 

Нормоконтролер                 ____________________________________

                                                                                           подпись, дата       инициалы, фамилия 

Защищен _____________________Оценка ______________________________

                  Дата

                                                            2007

ГОУВПО  «Воронежский государственный технический  университет»

Естественно-гуманитарный факультет

Кафедра системного анализа и управления в медицинских системах 

ЗАДАНИЕ

на курсовую работу 
 
 

     по  дисциплине: «информатика» 

     Тема: «Изучение аппаратного и программного обеспечения персонального компьютера. Основы программирования на языке С++.»  

Студент группы

                                                                                                              Фамилия, имя, отчество 

Перечень вопросов, подлежащих разработке  Эволюция процессоров и их совместимость; Операционные системы, оболочки, среды. Их функции; Структура программы на языке С. Стандартные библиотеки.                                                       

Объем работы (графические работы, расчеты, прочее)____________________ 
 
 

Сроки выполнения этапов          
 

Срок защиты курсовой работы         
 

Руководитель           

                                                                       Подпись, дата                                                       инициалы, фамилия 

Задание принял студент         

                                                                       Подпись, дата                                                      инициалы, фамилия 

      Замечание руководителя 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Содержание

1 Задание на  курсовую работу                                                                                         2

2 Замечание руководителя                                                                                               3

3 Введение                                                                                                                         5

4 Эволюция процессоров  и их совместимость                                                               6

   4.1 Общие характеристики процессора                                                                        6

   4.2 История развития                                                                                                     10

         4.2.1Процессоры Intel                                                                                              10

         4.2.2Процессоры AMD                                                                                            16

5 Операционные  системы, оболочки, среды. Их функции.                                          20

   5.1 История разработки и совершенствования основных операционных систем   компании Microsoft.                                                                                                          21

6 Структура программы  на языке С. Стандартные библиотеки.                                 27              

   6.1 Основные термины языка С                                                                                  27

   6.2 Структура программы                                                                                             29

      6.2.1 Состав структуры программы                                                                      29

      6.2.2Функция  main                                                                                                  30

          6.2.3 Область видимости идентификатора                                                           30

      6.2.4 Время существования переменных  и функций                                          31

      6.2.5 Спецификаторы классов памяти                                                                  31

   6.3 Стандартные библиотеки функций                                                                        33

7 Практическое  задание                                                                                                   35

   7.1 Условие  задачи                                                                                                         35

   7.2 Блок-схема                                                                                                                35

   7.3 Листинг  программы                                                                                                 38

Заключение                                                                                                                        41

Список литературы                                                                                                           42 
 
 

Введение

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

      С появлением настольных персональных компьютеров, созданных в начале 80-х годов  корпорацией IBM, произошла подлинная  революция. Первый персональный компьютер, появившийся в августе 1981 года, назывался IBM PC. Этим компьютером было гораздо проще пользоваться, чем старыми огромными ЭВМ.

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

         4 Эволюция процессоров и их совместимость

      4.1 Общие характеристики процессора

         Процессор (микропроцессор, центральный процессор, CPU) – основная микросхема компьютера, в которой и производятся все вычисления. Он представляет из себя большую микросхему (например, размеры микропроцессора Pentium примерно 5*5*0,5 см), которую можно легко найти на материнской плате. На процессоре установлен большой медный ребристый радиатор, охлаждаемый вентилятором. Конструктивно процессор состоит из ячеек, в которых данные могут не только храниться, но и изменяться. Внутренние ячейки процессора называют регистрами. Важно также отметить, что данные, попавшие в некоторые регистры, рассматриваются не как данные, а как команды, управляющие обработкой данных в других регистрах. Среди регистров процессора есть и такие, которые в зависимости от своего содержания способны модифицировать исполнение команд. Таким образом, управляя засылкой данных в разные регистры процессора, можно управлять обработкой данных. На этом и основано исполнение программ.

      С остальными устройствами компьютера, и в первую очередь с оперативной  памятью, процессор связан несколькими группами проводников, называемых шинами. Основных шин три: шина данных, адресная тина и командная шина.

      Адресная  шина. У процессоров Intel Pentium (а именно они наиболее распространены в персональных компьютерах) адресная шина 32-разрядная, то есть состоит из 32 параллельных линий. В зависимости от того, есть напряжение на какой-то из линий или нет, говорят, что на этой линии выставлена единица или ноль. Комбинация из 32 нулей и единиц образует 32-разрядный адрес, указывающий на одну из ячеек оперативной памяти. К ней и подключается процессор для копирования данных из ячейки в один из своих регистров.

      Шина  данных. По этой шине происходит копирование данных из оперативной памяти в регистры процессора и обратно. В компьютерах, собранных на базе процессоров Intel Pentium, шина данных 64-разрядная, то есть состоит из 64 линий, по которым за один раз на обработку поступают сразу 8 байтов.

      Шина  команд. Для того чтобы процессор мог обрабатывать данные, ему нужны команды. Он должен знать, что следует сделать с теми байтами, которые хранятся в его регистрах. Эти команды поступают в процессор тоже из оперативной памяти, но не из тех областей, где хранятся массивы данных, а оттуда, где хранятся программы. Команды тоже представлены в виде байтов. Самые простые команды укладываются в один байт, однако есть и такие, для которых нужно два, три и более байтов. В большинстве современных процессоров шина команд 32-разрядная (например, в процессоре Intel Pentium), хотя существуют 64-разрядные процессоры и даже 128-разрядные.

      Система команд процессора. В процессе работы процессор обслуживает данные, находящиеся в его регистрах, в поле оперативной памяти, а также данные, находящиеся во внешних портах процессора. Часть данных он интерпретирует непосредственно как данные, часть данных – как адресные данные, а часть – как команды. Совокупность всех возможных команд, которые может выполнить процессор над данными, образует так называемую систему команд процессора. Процессоры, относящиеся к одному семейству, имеют одинаковые или близкие системы команд. Процессоры, относящиеся к разным семействам, различаются по системе команд и невзаимозаменяемыми.

      Совместимость процессоров. Если два процессора имеют одинаковую систему команд, то они полностью совместимы на программном уровне. Это означает, что программа, написанная для одного процессора, может исполняться и другим процессором. Процессоры, имеющие разные системы команд, как правило, несовместимы или ограниченно совместимы на программном уровне.

      Группы  процессоров, имеющих ограниченную совместимость, рассматривают как семейства процессоров. Так, например, все процессоры Intel Pentium относятся к так называемому семейству х86. Родоначальником этого семейства был 16-разрядный процессор Intel 8086, на базе которого собиралась первая модель компьютера IBM PC. Впоследствии выпускались процессоры Intel 80286, Intel 80386, Intel 80486, Intel Pentium 60,66,75,90,100,133; несколько моделей процессоров Intel Pentium MMX, модели Intel Pentium Pro, Intel Pentium II, Intel Celeron, Intel Xeon, Intel Pentium III (см. рис. 2.3,а), Intel Pentium IV и другие. Все эти модели, и не только они, а также многие модели процессоров компаний AMD (см. рис. 2.3,б) и Cyrix относятся к семейству х86 и обладают совместимостью по принципу «сверху вниз».

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

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

      Рабочее напряжение процессора обеспечивает материнская плата, поэтому разным маркам процессоров соответствуют разные материнские платы (их надо выбирать совместно). По мере развития процессорной техники происходит постепенное понижение рабочего напряжения. Ранние модели процессоров х86 имели рабочее напряжение 5 В. С переходом к процессорам Intel Pentium оно было понижено до 3,3 В, а в настоящее время оно составляет менее 3 В. Причем ядро процессора питается пониженным напряжением 2,2 В. Понижение рабочего напряжения позволяет уменьшить расстояния между структурными элементами в кристалле процессора до десятитысячных долей миллиметра, не опасаясь электрического пробоя. Пропорционально квадрату напряжения уменьшается и тепловыделение в процессоре, а это позволяет увеличивать его производительность без угрозы перегрева.

      Разрядность процессора показывает, сколько бит  данных он может принять и обработать в своих регистрах за один раз (за один такт). Первые процессоры х86 были 16-разрядными. Начиная с процессора 80386 они имеют 32-разрядную архитектуру. Современные процессоры семейства Intel Pentium остаются 32-разрядными, хотя и работают с 64-разрядной шиной данных (разрядность процессора определяется не разрядностью шины данных, а разрядностью командной шины).

      В основе работы процессора лежит тот  же тактовый принцип, что и в обычных часах. Исполнение каждой команды занимает определенное количество тактов. В настенных часах такты колебаний задает маятник; в ручных механических часах их задает пружинный маятник; в электронных часах для этого есть колебательный контур, задающий такты строго определенной частоты. В персональном компьютере тактовые импульсы задает одна из микросхем, входящая в микропроцессорный комплект (чипсет), расположенный на материнской плате. Чем выше частота тактов, поступающих на процессор, тем больше команд он может исполнить в единицу времени, тем выше его производительность. Первые процессоры х86 могли работать с частотой не выше 4,77 МГц, а сегодня рабочие частоты, некоторых процессоров уже превосходят 500 миллионов тактов в секунду (500 МГц).

      Тактовые  сигналы процессор получает от материнской  платы, которая, в отличие от процессора, представляет собой не кристалл кремния, а большой набор проводников  и микросхем. По чисто физическим причинам материнская плата не может  работать со столь высокими частотами, как процессор. Сегодня ее предел составляет 100-133 МГц. Для получения более высоких частот в процессоре происходит внутреннее умножение частоты на коэффициент 3; 3,5; 4; 4,5; 5 и более.

      Обмен данными внутри процессора происходит в несколько раз быстрее, чем обмен с другими устройствами, например с оперативной памятью. Для того чтобы уменьшить количество обращений к оперативной памяти, внутри процессора создают буферную область – так называемую кэш-память. Это как бы «сверхоперативная память». Когда процессору нужны данные, он сначала обращается в кэш-память, и только если там нужных данных нет, происходит его обращение в оперативную память. Принимая блок данных из оперативной памяти, процессор заносит его одновременно и в кэш-память. «Удачные» обращения в кэш-память называют попаданиями в кэш. Процент попаданий тем выше, чем больше размер кэш-памяти, поэтому высокопроизводительные процессоры комплектуют повышенным объемом кэш-памяти.

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

      Кэш-память третьего уровня выполняют на быстродействующих  микросхемах типа SRAM и размещают  на материнской плате вблизи процессора. Ее объемы могут достигать нескольких Мбайт, но работает она на частоте материнской платы. 

          4.2.История развития

          4.2.1Процессоры Intel

          Процессоры i4004

      История процессоров началась в 1979 году, когда  фирма Intel выпустила первый микропроцессор i4004. Он имел разрядность данных 4 бита, способность адресовать 640 байт памяти, тактовую частоту 108 кГц и производительность 0.06 MIPS. Такой процессор уже мог работать в качестве вычислительного ядра калькулятора. Он содержал 2300 транзисторов и выполнялся по технологии с разрешением 10 мкм. Через год появился его 8-битный “родственник” – i8008, адресующий уже 16 Кб памяти.

          Процессоры i8080

      В 1974 году появился 8-разрядный процессор i8080, ставший весьма популярным устройством. Он уже имел частоту 2 Мгц и адресовал 64 Кб памяти. 6000 транзисторов позволила разместить 6-мкм технология изготовления. Процессор требовал трех источников питания (+5В, +12 В и –5В) и сложной двух контактной синхронизации. На этом процессоре строились разнообразные терминалы, контроллеры и даже первый ПК Altair. В нашей стране запоздалым эхом 8086 стали процессоры 580ИК80 и КР580ВМ80, на базе которых в начале и середине 80-ых годов строилось много “самодельный ” ПК.

          Процессоры i8085

      Следующим этапом стал процессор i8085 (5 Мгц, 0.37 MIPS, 6500 транзисторов, 3-мкм технология). Он сохранил популярную регистровую архитектуру 8080 и программную совместимость, но в него добавился порт последовательного интерфейса, упразднили специальные ИС поддержки (тактового генератора и системного контроллера) и несколько изменили внешний интерфейс. Главным подарком разработчикам аппаратуры стало одно питающее напряжение +5В.

          Процессоры Z80

      Вариацию  на тему 8080 и 8085 представляет процессор Z80 фирмы Zilog. Сохранив программную совместимость с 8080, в него ввели дополнительные регистры, что позволило существенно повысить производительность. Результат оказался впечатляющим – еще недавно популярные компьютеры Sinclair, построенные на Z80, демонстрировали на играх графику, не уступающему PC на 16 –разрядном процессоре 286.

          Процессоры 8086

      Первый 16–разрядный процессор 8086 фирма Intel выпустила  в 1978 году. Частота 5 МГц, производительность 0.33 MIPS, но инструкции уже с 16-битными  операндами (позже появились процессоры 8 и 10 МГц). Технология 3 мкм, 29 тыс. транзисторов. Адресуемая память 1 Мб. Регистровая архитектура и система команд существенно отличалась от 8080, но естественно прослеживаются общие идеи. Через год появился 8088 – тот же процессор, но с 8-битной шиной данных. С него началась история IBM PC, наложившая свой отпечаток на дальнейшее развитие этой линии процессоров Intel. Массовое распространение и открытость архитектуры PC привили к лавинообразному появлению программного обеспечения, разрабатываемого крупными, средними и мелкими фирмами и энтузиастами-одиночками. Технический требовал (и сейчас требует) развития процессоров, но груз программного обеспечения PC , которое должно работать и на более новых процессорах, в свою очередь требовал обратной программной совместимости. Таким образом, все нововведения в архитектуре последующих процессоров должны были пристраиваться к существующему ядру. А тут еще сама архитектура PC “подбросила”, например, сложности с использованием вектора прерываний. Фирма Intel зарезервировала первые 32 вектора “для служебного пользования”, однако на них “наехали” прерывания BIOS PC. Один из результатов – дополнительный способ обработки исключений сопроцессора, применяемы в старших моделях PC.

          Процессоры 80286

      Процессор 80286, выпущенный в 1982 году, представляет второе поколение 16-разрядных процессоров Он уже имел 134 тыс. транзисторов (технология 1.5 мкм) и адресовал до 16 Мб физической памяти, а также специальные средства для работы в многопользовательских и многозадачных системах. Самым существенным отличием от 8086/88 является механизм управления адресации памяти, который обеспечивает четырехуровневую систему защиты и поддержки виртуальной памяти. Специальные средства предназначены для поддержки механизма переключения задач (Task switching). Процессор имеет расширенную систему команд, которая кроме команд управления защитой включает все команды 8086  и несколько новых команд общего назначения. Процессор может работать в двух режимах:

      8086 Real Address Mode – режим реальной адресации (или просто реальный режим - Real Mode), полностью совместимый с 8086. В этом режиме возможна адресация до 1 Мбайт физической памяти (на самом деле, за счет “удачной” ошибки, почти на 64 Кб больше).

      Protect Virtual Address Mode – защищенный режим виртуальной адресации (или просто защищенный режим - Protect Mode). В этом режиме процессор позволяет адресовать до 16 Мбайт физической памяти, через которые при использовании страничной адресации могут отображаться до 1 Гб виртуальной памяти каждой задачи. Система команд в этом режиме также включает набор команд 8086, расширенный для обеспечения аппаратной реализации функций супервизора многозадачной ОС и виртуальной памяти. Переключение в защищенный режим осуществляется одной командой (с предварительно подготовленными таблицами дескрипторов) достаточно быстро. Обратное переключение в реальный режим возможно только через аппаратный сброс процессора.

          Процессоры 80386

      Класс 32-разрядных процессоров был открыт в 1985 году моделью 80386 (275 тыс. транзисторов, 1,5 мкм). Разрядность шины данных (как и внутренних регистров) достигла 23 бит, адресуемая физическая память - 4 Гб. Появились новые регистры, новые 32-битные операции, существенно доработан защищенный режим, появился режим V86, страничное управление памятью. Процессор нашел широкое применение в PC, и на благодатной почве его свойств стал разрастаться “самый большой вирус” – MS Windows с приложениями. С этого времени стала заметна тенденция “положительной обратной связи”: на появление нового процессора производители ПО реагируют выпуском новых привлекательных продуктов, последующим версиям которых становится явно тесно в рамках этого процессора. Появляется более производительный процессор, но после непродолжительного восторга и его ресурсы быстро “съедают” и т. д. Это “вечное” движение, конечно, естественно, но есть обоснованное подозрение, что большие ресурсы развращают (или, по крайней мере, расслабляют) разработчика ПО, не принуждая его напрягаться в поисках более эффективных способов решения задачи. Примером эффективного программирования можно считать игрушки на Sinclair ZX-Spectrum, которые реализуются на игрушечных ресурсах – 8-битном процессоре и 64 (128) Кбайт ОЗУ. С противоположными примерами большинство пользователей PC сталкиваются регулярно, но с процессором Pentium 200 и 32 Мб ОЗУ на них не всегда обращают внимание.

         Процессоры 386

      История процессора 386 напоминает историю 8086: первую модель с 32 битной шиной данных (в  последствии названной 386DX) сменил 386 SX с 16 битной шиной. Он довольно легко вписывался в архитектуру PC AT, ранее базировавшуюся на процессоре 286.

      Процессор Intel486DX

      Процессор Intel486DX появился в 1989 году. Транзисторы  –1,2 млн., технология 1мкм. От 386-го существенно  отличается размещением на кристалле первичного кэша и встроенного математического сопроцессора (предыдущие процессоры имели возможность использования внешних x87 сопроцессоров). Кроме того, для повышения производительности в этом CISC-процессоре (как и в последующих) применено RISC-ядро. Далее появились его разновидности, отличающиеся наличием или отсутствием сопроцессор, применением внутреннего умножения частоты, политикой записи кэша и другими. Занялись энергосбережением (появился режим SMM), что отразилось и в продолжении линии процессоров 386 (появился процессор Intel386SL).

          Процессоры Pentium

      В 1993 году появились первые процессоры Pentium частотой 60 и 66 МГц – 32 разрядные  процессоры с 64-битной шиной данных. Транзисторов 3,1 млн, технология 0,8 мкм, питание 5 В. От 486-го его принципиально отличается суперскалярной архитектурой – способностью за один такт выпускать с конвейеров до двух инструкций (что, конечно не означает возможность прохождение инструкций через процессор за полтакта, или один такт). Интерес к процессору со стороны производителей и покупателей PC сдерживался его очень высокой ценой. Кроме того, возник скандал с обнаружением ошибки сопроцессора. Хотя фирма Intel математически обосновала не высокую вероятность ее проявления (раз в несколько лет), она все-таки пошла на бесплатную замену уже проданных процессоров на исправленные.

      Процессоры Pentium с частотой 75, 90 и 100МГц, появившиеся  в 1994 году, представили уже второе поколение процессоров Pentium. При  почти том же числе транзисторов они выполнялись по технологии 0,6 мкм, что позволило снизить потребляемую мощность. От первого поколения они отличались внутреннем умножением частоты, поддержкой мультипроцессорных конфигураций и имели другой тип корпуса. Появились версии (75 МГц в миниатюрном корпусе) для мобильных применений (блокнотные ПК). Процессоры Pentium второго поколения стали весьма популярны в PC. В 1995 году появились процессоры на 120 и 133 МГЦ, выполненные уже по технологии 0,35 мкм (первые процессоры на 120 МГЦ делались еще по технологии 0,6 мкм). 1996-й называют годом Pentium –появились процессоры на 150, 166 и 200 МГЦ, и Pentium стал рядовым процессором для PC широкого применения.

Изучение аппаратного и программного обеспечения персонального компьютера. Основы программирования на языке С++. 2