Инструменты пользователя

Инструменты сайта


igor:programmirovanie_shkolnikam

Различия

Показаны различия между двумя версиями страницы.

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
igor:programmirovanie_shkolnikam [2019/02/07 22:10] – [Разрядность и производительность процессора] igorigor:programmirovanie_shkolnikam [2019/02/10 00:21] (текущий) – [Программная совместимость и архитектурные классы (аппаратные платформы) компьютеров] igor
Строка 76: Строка 76:
 Есть 10 цифр, 26 общеупотребительных латинских букв (которые бывают заглавные и строчные) и знаки препинания: точка, вопросительный знак и др. - всего порядка сотни знаков, без которых нам не обойтись, независимо от того, в какой стране мы живем. У нас же, россиян, есть еще 33 буквы, которые опять-таки бывают заглавные и строчные. Если сложить все вместе, то одного байта будет достаточно. Однако если мы захотим одной ячейкой памяти представить все буквы всех языков мира, то 256 значений будет недостаточно - значит, нужна ячейка с бОльшим количеством бит. Это будет необходимо и для вычислений, если мы хотим работать с большими числами или представлять их с большой точностью. \\ \\ Есть 10 цифр, 26 общеупотребительных латинских букв (которые бывают заглавные и строчные) и знаки препинания: точка, вопросительный знак и др. - всего порядка сотни знаков, без которых нам не обойтись, независимо от того, в какой стране мы живем. У нас же, россиян, есть еще 33 буквы, которые опять-таки бывают заглавные и строчные. Если сложить все вместе, то одного байта будет достаточно. Однако если мы захотим одной ячейкой памяти представить все буквы всех языков мира, то 256 значений будет недостаточно - значит, нужна ячейка с бОльшим количеством бит. Это будет необходимо и для вычислений, если мы хотим работать с большими числами или представлять их с большой точностью. \\ \\
 ==== Как числа представляются в компьютере и как они записываются в программах ==== ==== Как числа представляются в компьютере и как они записываются в программах ====
-Выше мы рассмотрели байт, слово и двойное слово как запоминающие ячейки, построенные из нескольких элементарных запоминающих ячеек по 1 биту каждая. Размер ячейки в битах в разных книгах может называться длиной, объемом или емкостью - единства терминологии здесь, к сожалению, нет. В зависимости от длины ячейка может принимать то или иное множество состояний, и каждое состояние может трактоваться как число. Если каждый бит изобразить цифрой 0 или 1, то получается, что любое число в компьютере может быть представлено последовательностью //двоичных цифр// - нулей и единиц. Таким образом мы приходим к пониманию //двоичной системы счисления//. Эта система для нас непривычна ровно постольку, поскольку мы все с детства привыкли к десятичной системе счисления. Однако десятичная система была не везде и не всегда. В древности в Европе была в ходу //двенадцатиричная система//. Затем она была вытеснена десятичной системой, которую привезли из Индии арабы. Привезли вместе с привычными нам десятичными цифрами 0123456789, которые часто называют арабскими, хотя на самом деле они индийские. Произошло это очень давно, задолго до начала развития компьютерной техники, так что двенадцатиричная система оказалась совершенно забыта и заброшена, и все, что от нее осталось, - это слово "дюжина". Неудивительно, что для современного человека переход на другую систему счисления - психологический барьер... Но для нас, программистов 21-го века, этот барьер уже не имеет сколько-нибудь существенного значения. Вот для инженеров-электронщиков, проектирующих компьютерное "железо" - да... Я же сейчас нарушу +Выше мы рассмотрели байт, слово и двойное слово как запоминающие ячейки, построенные из нескольких элементарных запоминающих ячеек по 1 биту каждая. Размер ячейки в битах в разных книгах может называться длиной, объемом или емкостью - единства терминологии здесь, к сожалению, нет. В зависимости от длины ячейка может принимать то или иное множество состояний, и каждое состояние может трактоваться как число. Если каждый бит изобразить цифрой 0 или 1, то получается, что любое число в компьютере может быть представлено последовательностью //двоичных цифр// - нулей и единиц. Таким образом мы приходим к пониманию //двоичной системы счисления//. Эта система для нас непривычна ровно постольку, поскольку мы все с детства привыкли к десятичной системе счисления. Однако десятичная система была не везде и не всегда. В древности в Европе была в ходу //двенадцатиричная система//. Ее основанием было число "дюжина", которое было удобно тем, что делилось без остатка на два, на три и на четыре. Затем она была вытеснена десятичной системой, которую привезли из Индии арабы. Привезли вместе с привычными нам десятичными цифрами 0123456789, которые часто называют арабскими, хотя на самом деле они индийские. Эта система удобна для счета на пальцах, практиковавшегося в древней школе. Произошло это очень давно, задолго до начала развития компьютерной техники, так что двенадцатиричная система оказалась совершенно забыта и заброшена, и все, что от нее осталось, - это слово "дюжина". Неудивительно, что для современного человека переход на другую систему счисления - психологический барьер... Но для нас, программистов 21-го века, этот барьер уже не имеет сколько-нибудь существенного значения. Вот для инженеров-электронщиков, проектирующих компьютерное "железо" - да... Я же сейчас нарушу 
 общепринятый в компьютерной литературе подход и втравливать читателя в дебри двоичной арифметики не буду совсем. Лишь немного коснусь двоичной записи чисел. Поскольку каждая цифра в двоичной системе не может быть больше 1, то число 2 записывается как 10, 4 - как 100... У одного моего друга - профессионального компьютерщика - номер на двери квартиры записан как 11010, а вам я предлагаю самостоятельно вычислить, какие номера написаны на соседних квартирах, с учетом того что их хозяева - не профессиональные компьютерщики. \\ общепринятый в компьютерной литературе подход и втравливать читателя в дебри двоичной арифметики не буду совсем. Лишь немного коснусь двоичной записи чисел. Поскольку каждая цифра в двоичной системе не может быть больше 1, то число 2 записывается как 10, 4 - как 100... У одного моего друга - профессионального компьютерщика - номер на двери квартиры записан как 11010, а вам я предлагаю самостоятельно вычислить, какие номера написаны на соседних квартирах, с учетом того что их хозяева - не профессиональные компьютерщики. \\
 Недостаток двоичной системы в том, что запись чисел получается довольно длинной и поэтому трудно читаемой. Например, такое небольшое число как тысяча записывается вот так: 1111101000, а попробуйте записать миллион или миллиард. Поэтому были предложены //системы записи чисел//: восьмиричная и шестнадцатиричная. Это не самостоятельные системы счисления, а именно системы записи чисел, за которыми, в конечном счете, стоит двоичная система счисления. Весь ряд бит, изображающий число, делится на группы по 3 или 4 бита, и каждая группа изображается цифрой: восьмиричной или шестнадцатиричной соответственно. В качестве восьмиричных используют арабские (индийские!) цифры от 0 до 7. Соответственно тысяча в восьмиричной системе запишется как 1750. Для представления шестнадцатиричных цифр используют опять-таки индийские цифры 0...9, а недостающие цифры заменяют латинскими буквами A...F, так что тысяча запишется как 3E8. \\ Недостаток двоичной системы в том, что запись чисел получается довольно длинной и поэтому трудно читаемой. Например, такое небольшое число как тысяча записывается вот так: 1111101000, а попробуйте записать миллион или миллиард. Поэтому были предложены //системы записи чисел//: восьмиричная и шестнадцатиричная. Это не самостоятельные системы счисления, а именно системы записи чисел, за которыми, в конечном счете, стоит двоичная система счисления. Весь ряд бит, изображающий число, делится на группы по 3 или 4 бита, и каждая группа изображается цифрой: восьмиричной или шестнадцатиричной соответственно. В качестве восьмиричных используют арабские (индийские!) цифры от 0 до 7. Соответственно тысяча в восьмиричной системе запишется как 1750. Для представления шестнадцатиричных цифр используют опять-таки индийские цифры 0...9, а недостающие цифры заменяют латинскими буквами A...F, так что тысяча запишется как 3E8. \\
Строка 226: Строка 226:
 Причиной несовместимости может быть любая мелочь. Но для совместимости необходимо, чтобы процессоры имели, как минимум, одну и ту же систему команд (командный язык). Командный язык непосредственно связан с разрядностью процессора. \\ Причиной несовместимости может быть любая мелочь. Но для совместимости необходимо, чтобы процессоры имели, как минимум, одну и ту же систему команд (командный язык). Командный язык непосредственно связан с разрядностью процессора. \\
 Существует много //архитектурных классов// компьютеров: два компьютера из разных классов категорически не будут иметь программной совместимости, а в пределах одного класса по крайней мере есть надежды на совместимость. Часто употребляется термин "аппаратная платформа". \\ Существует много //архитектурных классов// компьютеров: два компьютера из разных классов категорически не будут иметь программной совместимости, а в пределах одного класса по крайней мере есть надежды на совместимость. Часто употребляется термин "аппаратная платформа". \\
-Из множества архитектурных классов рассмотрим три самых перспективных для нас. \\+Из множества архитектурных классов рассмотрим несколько самых перспективных для нас. \\
 === AVR === === AVR ===
 Это "Alf & Vergard RISC" - "компьютер Альфа и Вергарда с сокращенной системой команд". В рамках этого класса фирма Atmel выпускает семейства 8-разрядных однокристалльных микроконтроллеров (ОКМК) ATtiny и ATmega (хотя по большому счету это одно большое семейство). Эти простые машинки - "Жигули" среди компьютеров. Они имеют 32 регистра общего назначения, оперативную память SRAM и долговременную память EEPROM для данных, flash-память для программы (гарвардская архитектура!) и "малый джентльменский набор" периферийных устройств для управления различным оборудованием. Значения емкости запоминающих устройств варьируются в широком диапазоне, за счет чего и получается //семейство// микроконтроллеров, программно-совместимых с точностью до некоторых нюансов. \\  Это "Alf & Vergard RISC" - "компьютер Альфа и Вергарда с сокращенной системой команд". В рамках этого класса фирма Atmel выпускает семейства 8-разрядных однокристалльных микроконтроллеров (ОКМК) ATtiny и ATmega (хотя по большому счету это одно большое семейство). Эти простые машинки - "Жигули" среди компьютеров. Они имеют 32 регистра общего назначения, оперативную память SRAM и долговременную память EEPROM для данных, flash-память для программы (гарвардская архитектура!) и "малый джентльменский набор" периферийных устройств для управления различным оборудованием. Значения емкости запоминающих устройств варьируются в широком диапазоне, за счет чего и получается //семейство// микроконтроллеров, программно-совместимых с точностью до некоторых нюансов. \\ 
Строка 234: Строка 234:
 Многие считают AVR идеальной "учебной партой" для начинающих программистов. Такой взгляд имеет место быть, однако есть и аргументы "против". Микроконтроллер, в отличие от "большого" компьютера, не работает сам по себе: к нему подключается какая-то периферия, и для программирования желательно (читаем: необходимо) понимание устройства и работы этой периферии. Если мы делаем какие-то игрушки-самоделки, то нужно разбираться в электротехнике (хотя бы на уровне закона Ома), понимать принцип работы светодиодов, электродвигателей (простых и шаговых)... Не обойтись и без некоторых навыков радиомонтажа. Программист промышленных контроллеров работает обычно не один, а в команде, и может себе позволить этого всего не знать или знать поверхностно, но в промышленности на такие машины часто возлагаются задачи, для решения которых нужен серьезный математический аппарат: дифференциальное и интегральное исчисление, векторная алгебра и аналитическая геометрия... Это наука не школьного, а скорее университетского уровня. \\ Многие считают AVR идеальной "учебной партой" для начинающих программистов. Такой взгляд имеет место быть, однако есть и аргументы "против". Микроконтроллер, в отличие от "большого" компьютера, не работает сам по себе: к нему подключается какая-то периферия, и для программирования желательно (читаем: необходимо) понимание устройства и работы этой периферии. Если мы делаем какие-то игрушки-самоделки, то нужно разбираться в электротехнике (хотя бы на уровне закона Ома), понимать принцип работы светодиодов, электродвигателей (простых и шаговых)... Не обойтись и без некоторых навыков радиомонтажа. Программист промышленных контроллеров работает обычно не один, а в команде, и может себе позволить этого всего не знать или знать поверхностно, но в промышленности на такие машины часто возлагаются задачи, для решения которых нужен серьезный математический аппарат: дифференциальное и интегральное исчисление, векторная алгебра и аналитическая геометрия... Это наука не школьного, а скорее университетского уровня. \\
 И еще. Микроконтроллеры часто вообще не имеют средств отображения информации (мониторов и т. д.), что может существенно затруднить поиск ошибок в программах (отладку программ). В общем, микроконтроллеры не так просты, какими хотят казаться. \\ И еще. Микроконтроллеры часто вообще не имеют средств отображения информации (мониторов и т. д.), что может существенно затруднить поиск ошибок в программах (отладку программ). В общем, микроконтроллеры не так просты, какими хотят казаться. \\
-На мой субъективный взгляд, важнейшая привлекательная черта маломощных микроконтроллеров - это их простота, позволяющая нам за сравнительно небольшое время разобраться во всем их устройстве, так сказать, "до дна" (что совершенно немыслимо для более сложных процессоров, например для AMD64). Кроме того, эти машинки не терпят упрощенческого, наплевательского подхода к программированию. Да, мигать светодиодом с помощью такого микроконтроллера можно научиться за полчаса, но более сложная программа, сделанная наспех, без должной подготовки, без тщательного изучения предмета, может просто "не пойти", тогда как более мощные машины это прощают. \\+На мой субъективный взгляд, важнейшая привлекательная черта маломощных микроконтроллеров - это их простота, позволяющая нам за сравнительно небольшое время разобраться во всем их устройстве, так сказать, "до дна" (что совершенно немыслимо для более сложных процессоров, например для AMD64). Кроме того, эти машинки не терпят упрощенческого, наплевательского подхода к программированию. Да, мигать светодиодом с помощью такого микроконтроллера можно научиться за полчаса, но более сложная программа, сделанная наспех, без должной подготовки, без тщательного изучения предмета, может просто "не пойти", тогда как более мощные машины это прощают. Самый же весомый аргумент "ЗА" AVR для начинающих программистов: по этим машинкам имеется множество книг, в том числе написанных именно как пособия для изучения с нуля. Причем многие книги доступны для скачивания в интернете. \\ 
 +=== PIC === 
 +Это Peripheral Interface Components - очень неудачное название микроконтроллеров от американский фирмы "Микрочип": название не только не дает представления о каких-либо особенностях изделий, но и дезинформирует нас о том, что вообще эти изделия собой представляют. Еще хуже то, что разных PICов очень много, и сколько-нибудь единого семейства они не образуют. PIC10 и PIC12 совсем примитивны и для нас едва ли интересны. PIC16 и PIC18 - вот самое то, что нам нужно: простые восьмиразрядные микроконтроллеры, по совокупности характеристик близкие к ATtiny, отличающиеся тем, что не имеют внутрипроцессорных регистров (да не очень-то они и нужны, поскольку имеется быстродействующая оперативная Storage-on-Chip). Кстати PIC18 имеют и EEPROM. Подобно ATtiny, эти микроконтроллеры не владеют операциями умножения и деления. \\ 
 +Если AVR сравнивать с "Жигулями", то PIC16 и PIC18 будут нашими "Запорожцами". Как учебная парта для первоклашек-промакашек пики едва ли не более удачны, чем AVR, но по ним мало толковых книг - почему-то все авторы предпочитают писать про AVR. \\ 
 +Микроконтроллеры PIC24 - шестнадцатиразрядные, а PIC32 - 32-разрядные. Они в нашем гараже займут место "Волг" и "Газелей". \\ 
 +=== MCS51 === 
 +Это самое старое семейство восьмиразрядных микроконтроллеров, выпускаемое несколькими фирмами в разных странах мира практически с 1980-го года и с тех пор не потерявшее популярности. Эти машинки будут нашими "Москвичами": по скорости и грузоподъемности они близки к "Жигулям" и "Волгам", но имеют несколько устаревшую архитектуру. В отличие от AVR и PIC, которые построены по принципу RISC, MCS51 имеют довольно сложную систему команд, близкую к тем, которые типичны для больших компьютеров. В частности, в "51-м семействе" имеется операция деления (ну и умножения, конечно, тоже). Если уместно говорить о скорости и грузоподъемности, то скажем так: эти машины отличаются тем, что хорошо ходят с "прицепом" - с внешней оперативной памятью, емкость которой несложно довести до 64Кбайт, и такую же величину может иметь флэш-память для программ. За много лет существования этого семейства написано немало книг, причем во всех рассматривается программирование только на языке ассемблера. Кого-то из моих читателей это может отпугнуть, я же, наоборот, рассматриваю это как преимущество. \\ 
 +Популяризация "51-го семейства" сдерживается тем, что для этих микроконтроллеров не выпускаются дешевые отладочные платы, подобные "Ардуинам", SEMам или Nucleo (или, по крайней мере, в сколько-нибудь широкой продаже я их не видел). \\
 === ARM Cortex === === ARM Cortex ===
 ARM расшифровывается как Advanced RISC Machine или как Acorn RISC Machine, т. е. тоже подразумевает компьютер с сокращенной системой команд, хотя, как и в предыдущем случае, "сокращенный" - скорее все-таки красивый лозунг, чем реальность. \\ ARM расшифровывается как Advanced RISC Machine или как Acorn RISC Machine, т. е. тоже подразумевает компьютер с сокращенной системой команд, хотя, как и в предыдущем случае, "сокращенный" - скорее все-таки красивый лозунг, чем реальность. \\
Строка 254: Строка 261:
 Архитектура этих процессоров представляет собой довольно замысловатое наслоение множества противоречивых технических решений, выработанных разными людьми в течение нескольких десятилетий. Разобраться в ней досконально - трудно даже для человека, систематически в течение многих лет работающего с такими процессорами. Однако неправильно было бы говорить, что начинающему программисту сюда вообще не следует соваться. Во-первых, такой компьютер чаще всего работает сам по себе, так что многие задачи можно решать, не зная никакой другой техники, кроме самого этого компьютера. Во-вторых, на таком компьютере всегда имеется операционная система: она берет на себя множество функций, которые на микроконтроллере пришлось бы осуществлять "своими вот этими руками". Например, если нужно вывести результат работы программы на экран, то программируется //системный вызов//, а чтобы то же самое вывести в файл, этот системный вызов нужно лишь слегка подправить. За системным вызовом стоит большая процедура, но большинство программистов ничего об этом не знает, и в этом нет ничего стыдного. \\ Архитектура этих процессоров представляет собой довольно замысловатое наслоение множества противоречивых технических решений, выработанных разными людьми в течение нескольких десятилетий. Разобраться в ней досконально - трудно даже для человека, систематически в течение многих лет работающего с такими процессорами. Однако неправильно было бы говорить, что начинающему программисту сюда вообще не следует соваться. Во-первых, такой компьютер чаще всего работает сам по себе, так что многие задачи можно решать, не зная никакой другой техники, кроме самого этого компьютера. Во-вторых, на таком компьютере всегда имеется операционная система: она берет на себя множество функций, которые на микроконтроллере пришлось бы осуществлять "своими вот этими руками". Например, если нужно вывести результат работы программы на экран, то программируется //системный вызов//, а чтобы то же самое вывести в файл, этот системный вызов нужно лишь слегка подправить. За системным вызовом стоит большая процедура, но большинство программистов ничего об этом не знает, и в этом нет ничего стыдного. \\
 Следующий аргумент "ЗА": на большом компьютере обычно имеется монитор, так что если в программе что-то идет не так (а поначалу ВСЕГДА что-нибудь не так), то можно, например, вывести на экран значение переменной, которая вызывает сомнения, и т. д. Таким образом, поиск неисправностей в программе значительно облегчается по сравнению с микроконтроллерами. \\ Следующий аргумент "ЗА": на большом компьютере обычно имеется монитор, так что если в программе что-то идет не так (а поначалу ВСЕГДА что-нибудь не так), то можно, например, вывести на экран значение переменной, которая вызывает сомнения, и т. д. Таким образом, поиск неисправностей в программе значительно облегчается по сравнению с микроконтроллерами. \\
-Кроме того, именно на "больших" компьютерах строятся почтовые и WEB-серверы, для которых создается огромное количество программ на специализированных языках (типа PHP, Java и Java-script) - это целый большой пласт в искусстве программирования. \\ \\+И еще один аргумент "ЗА", к которому следует прислушаться даже тем из вас, кто раз и навсегда решил связать свою жизнь с "мелкокаменной" техникой (микропроцессорами и микроконтроллерами). Разработка ПО для такой техники в наше время никогда не ведется на самой той машине, для которой программа предназначена: работа ведется на //инструментальной машине//, в роли которой практически всегда выступает компьютер AMD64. \\ 
 +Иными словами, мощный и сложный по своему внутреннему устройству компьютер представляет программисту целый ряд удобств, благодаря которым работа на нем едва ли не проще, чем на микроконтроллерах. \\ 
 +Кроме того, именно на "больших" компьютерах строятся почтовые и WEB-серверы, для которых создается огромное количество программ на специализированных языках (типа PHP, Java и Java-script) - это целый большой пласт в искусстве программирования. Не менее 3/4 всех программистов, работающих в мире, занято именно в этой отрасли, так что знакомство с такими компьютерами совершенно необходимо. \\ \\
 ==== Понятие ресурсов компьютера ==== ==== Понятие ресурсов компьютера ====
 **Ресурс** - это нечто, что все хотят, но на всех не хватает. Каждый человек хочет иметь такой компьютер, который мгновенно решал бы самую сложную задачу. Но такой компьютер будет чудовищно дорог. Компьютер, который мы покупаем за имеющиеся у нас деньги, неизбежно будет иметь ограниченные "умственные способности". Любая причина, которая их ограничивает, и есть ресурс. \\ **Ресурс** - это нечто, что все хотят, но на всех не хватает. Каждый человек хочет иметь такой компьютер, который мгновенно решал бы самую сложную задачу. Но такой компьютер будет чудовищно дорог. Компьютер, который мы покупаем за имеющиеся у нас деньги, неизбежно будет иметь ограниченные "умственные способности". Любая причина, которая их ограничивает, и есть ресурс. \\
Строка 347: Строка 356:
 Ядро ОС - это наш системный шеф-повар, который постоянно находится на своей "кухне" в полностью или почти невидимом для нас состоянии, владеет определенными профессиональными секретами, знает, где у него мясо и где картошка, где кастрюли и где плита, и выполняет наши заказы, которые мы ему передаем в виде //системных вызовов//. \\ Ядро ОС - это наш системный шеф-повар, который постоянно находится на своей "кухне" в полностью или почти невидимом для нас состоянии, владеет определенными профессиональными секретами, знает, где у него мясо и где картошка, где кастрюли и где плита, и выполняет наши заказы, которые мы ему передаем в виде //системных вызовов//. \\
 Оболочка - это наш системный официант, которому мы непосредственно отдаем "заказы" (команды). Название "оболочка" отражает тот факт, что пользователь не имеет дела непосредственно с ядром, а имеет дело с оболочкой, и ядро как бы скрыто от пользователя оболочкой. \\ Оболочка - это наш системный официант, которому мы непосредственно отдаем "заказы" (команды). Название "оболочка" отражает тот факт, что пользователь не имеет дела непосредственно с ядром, а имеет дело с оболочкой, и ядро как бы скрыто от пользователя оболочкой. \\
-Утилиты (англ. utilities - "полезняшки") - инструмент и принадлежности, которые не решают прикладных задач, но порой требуются для обслуживания компьютера: настройки и модернизации, поиска и устранения неисправностей, обзора обстановки и т. д. Подобно тому как грамотный автомобилист всегда возит с собой домкрат, насос, буксирный "галстук" и бензошланг, как на корабле обязательно есть шлюпки, спасательные круги, пластырь для заделки пробоин и куча всякого другого аварийно-спасательного имущества, так и грамотный компьютерщик имеет под рукой определенный набор утилит и при необходимости пользуется ими. \\+**//Утилиты//** (англ. utilities - "полезняшки") - инструмент и принадлежности, которые не решают прикладных задач, но порой требуются для обслуживания компьютера: настройки и модернизации, поиска и устранения неисправностей, обзора обстановки и т. д. Подобно тому как грамотный автомобилист всегда возит с собой домкрат, насос, буксирный "галстук" и бензошланг, как на корабле обязательно есть шлюпки, спасательные круги, пластырь для заделки пробоин и куча всякого другого аварийно-спасательного имущества, так и грамотный компьютерщик имеет под рукой определенный набор утилит и при необходимости пользуется ими. В наше время каждая операционная система комплектуется "джентльменским набором" утилит, число которых может составлять сотни. \\
 Операционная система - сложное программное изделие. На больших компьютерах она "съедает" определенную долю ресурсов компьютера, прежде всего место в памяти и часть времени работы процессора. Современные операционные системы чаще всего весьма "прожорливы" и могут работать только на мощных компьютерах. Если попытаться эксплуатировать такую систему на компьютере с недостаточными ресурсами, то она будет, как минимум, "тормозить", неизбежно заставляя тормозить и прикладные программы, а в худшем случае вообще не сможет работать. \\ Операционная система - сложное программное изделие. На больших компьютерах она "съедает" определенную долю ресурсов компьютера, прежде всего место в памяти и часть времени работы процессора. Современные операционные системы чаще всего весьма "прожорливы" и могут работать только на мощных компьютерах. Если попытаться эксплуатировать такую систему на компьютере с недостаточными ресурсами, то она будет, как минимум, "тормозить", неизбежно заставляя тормозить и прикладные программы, а в худшем случае вообще не сможет работать. \\
 На микроконтроллерах операционных систем чаще всего не бывает. В лучшем случае на микроконтроллере имеется **//загрузчик//** - небольшая программа, "зашитая" во flash-память и решающая только одну задачу из тех, которые выше упомянуты для операционной системы: установку прикладной программы. Микроконтроллер и его загрузчик строятся так, чтобы выполнять одну-единственную прикладную программу многократно в течение длительного времени (иногда - в течение всего срока службы микроконтроллера). Прикладная программа для микроконтроллера называется **//скетч//** (англ. sketch - рисунок, набросок). Скетч пишется так, как будто ему доступны все ресурсы машины, но и на помощь операционной системы, например при вводе-выводе данных на периферийные устройства, расссчитывать не приходится. \\ На микроконтроллерах операционных систем чаще всего не бывает. В лучшем случае на микроконтроллере имеется **//загрузчик//** - небольшая программа, "зашитая" во flash-память и решающая только одну задачу из тех, которые выше упомянуты для операционной системы: установку прикладной программы. Микроконтроллер и его загрузчик строятся так, чтобы выполнять одну-единственную прикладную программу многократно в течение длительного времени (иногда - в течение всего срока службы микроконтроллера). Прикладная программа для микроконтроллера называется **//скетч//** (англ. sketch - рисунок, набросок). Скетч пишется так, как будто ему доступны все ресурсы машины, но и на помощь операционной системы, например при вводе-выводе данных на периферийные устройства, расссчитывать не приходится. \\
igor/programmirovanie_shkolnikam.1549566614.txt.bz2 · Последнее изменение: 2019/02/07 22:10 — igor