Главная » Статьи для тега "который"

Критические участки и состояние конкуренции за ресурсы – ЧАСТЬ 2

Добавлено Дата: 16 May, 2012 категория: Ядро Linux

Вначале кажется, что описанная ситуация не имеет  простого решения. Как  можно предотвратить чтение очереди на  одном  процессоре в тот  момент, когда  другой  процессор обновляет ее?  Вполне логично аппаратно реализовать простые инструкции, такие  как  атомарные арифметические операции  или  операции сравнения, тем  не менее  было  бы  смешно аппаратно реализовывать критические участки  неопределенного  размера, как  в приведенном примере. Все что нужно  — это  предоставить метод, который позволяет отметить начало  и конец; критического участка, и предотвратить или  заблокировать  (lock)  доступ  к этому  участку, пока  другой  поток  выполняет его.

Читать »

Апплет Крестики-Нолики

Добавлено Дата: 2 May, 2012 категория: Java

Когда вы заходите на свой любимый сайт, есть небольшая вероятность,  что  некоторые  из  игр  или  других  приложений  на  сайте были   написаны  на   Java   с   помощью   технологии   так  называемых апплетов.  Эти  специальные  приложения  живут  и  работают  внутри окна веб-­?браузера. Веб-­?браузеры понимают  простой  язык  разметки, который   называется  HTML,  который  позволяет  вам  вставлять специальные  метки (“теги”) в текстовые файлы, чтобы  они красиво отображались в браузерах.  Кроме текста, вы можете вставлять в файлы HTML  специальный  тег  <applet>,  который  подскажет  браузеру,  где найти и как правильно показать апплет Java.  Java-­?апплеты  загружаются на ваш компьютер из  интернета, как  часть веб-­?странички, а браузер достаточно умен, чтобы  запустить свою JVM для  того, чтобы запустить эти апплеты.

Читать »

Стиль написания исходного кода

Добавлено Дата: 30 April, 2012 категория: Ядро Linux

Как  и  для  любого   большого программного  проекта,  для  ядра  Linux  определен стиль  написания исходного кода,  который определяет форматирование и  размещение  кода.  Это  сделано не  потому, что  стиль  написания,  который принят для  Linux, лучше  других  (хотя  очень   может  быть),  и  не  потому,  что  все  программисты пишут неразборчиво (хотя  тоже  бывает), а потому, что  одинаковость стиля  является важным моментом для  обеспечения производительности  разработки. Часто  говорят, что стиль написания   исходного кода  не  важен, потому  что  он  не  влияет   на  скомпилированный  объектный код.  Однако для  большого программного проекта,  в котором задействовано большое количество разработчиков,  такого  как  ядро, важна  слаженность стиля.   Слаженность включает в себя  одинаковость восприятия,  что  ведет  к упрощению  чтения, к избежанию путаницы и  вселяет   надежду  на  то, что  и  в будущем  стиль останется одинаковым. К тому же, это  приводит к увеличению количества разработчиков,  которые смогут  нормально читать  ваш  код, и  увеличивает количество кода, который вы  сможете нормально читать.  Для  проектов с  открытым исходным кодом чем  больше будет  глаз, тем  лучше.

Читать »

Классы-оболочки: общий обзор

Добавлено Дата: 27 April, 2012 категория: Java

Для большинства примитивных типов в языке Java существуют классы, представляющие значения данного типа. Эти классы-оболочки  обладают двумя основными функциями. Первая — в них находятся методы и переменные, относящиеся к типу (например, методы строковых преобразований и константы для границ диапазона). Следующий пример показывает, как можно проверить, допустимо ли для данной величины выполнение быстрых вычислений типа float или же ее диапазон выходит за границы, разрешенные для float:

Читать »

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

Добавлено Дата: 27 April, 2012 категория: Java

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

Абстракция оказывается полезной, когда некоторое поведение характерно для большинства или всех объектов данного класса, но некоторые аспекты имеют смысл лишь для ограниченного круга объектов, не составляющих суперкласса. В Java такие классы объявляются с ключевым словом abstract, и каждый метод, не реализованный в классе, также объявляется abstract. (Если все, что вам требуется, — это определить набор методов, которые будут где-то поддерживаться, но не предоставлять для них реализации, то вместо абстрактных классов, видимо, лучше воспользоваться интерфейсами, описанными в главе 4.)

Читать »

Как работает программа HelloWorld

Добавлено Дата: 23 April, 2012 категория: Java

Давайте начнем  разбираться  -­? что   же   фактически   происходит   впрограмме HelloWorld? Класс  HelloWorld содержит только один метод main(), который является  точкой входа приложения на  Java.  То,  что  main — это  метод, говорят круглые скобки после слова main. Методы  могут вызывать (использовать)  другие методы, например, наш метод main(), чтобы напечатать   на   экране   текст   Hello World,   вызывает   метод println().Каждый метод начинается со строки   объявления,  которую называют  сигнатурой метода:

Читать »

Планирование выполнения процессов

Добавлено Дата: 21 April, 2012 категория: Ядро Linux

предыдущей  главе  были  рассмотрены  процессы— абстракция  операционной системы, связанная с активным программным кодом.  В этой  главе  представлен

планировщик процессов — код, который позволяет процессам выполняться.

Читать »

Организация команды разработчиков

Добавлено Дата: 20 April, 2012 категория: Ядро Linux

Разработчик и  — эт о  хакеры ,  которы е  занимаютс я  развитие м  ядр а  Linux . Некоторые делают  это  за деньги, для  некоторых это  хобби, но  практически все  делают  это  с удовольствием. Разработчики ядра,  которые внесли существенный вклад, перечислены в файле  CREDITS,  который находится в корневом  каталоге дерева  исходных  кодов   ядра.

Читать »

Работа с датами и временем

Добавлено Дата: 20 April, 2012 категория: Java

программа Java может узнать  текущие  дату  и  время,  и  отобразить  их  в  различных форматах.  Например,   15.06.2011  или  15  июля  2011.   В   Java   есть множество  классов,  которые  работают  с  датами.  Но  два  из  них  —

 java.util.Date и  java.text.SimpleDateFormat  — охватываютбольшую  часть ваших потребностей при работе с датами и временем.

Читать »

Создание объектов представляющих небесные тела

Добавлено Дата: 19 April, 2012 категория: Java

Для первой версии класса Body создание и инициализация объектов, представляющих небесные тела, происходит следующим образом:

Body sun = new Body(); sun.idNum = Body.nextID++; sun.nameFor = “Sol”;

sun.orbits = null; // Солнце является центром Солнечной

Читать »

В завершение о планировщике

Добавлено Дата: 17 April, 2012 категория: Ядро Linux

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

Читать »

Потом пришел Линус:  введение в Linux

Добавлено Дата: 17 April, 2012 категория: Ядро Linux

Операционная  система Linux   была  разработана Линусом Торвальдсом  (Linus Torvalds)   в  1991  году  как  операционная система для  компьютеров,  работающих на новом в то  время  микропроцессоре Intel  80386.  Тогда  Линус  Торвальдс был  студентом  университета в Хельсинки и  был  крайне возмущен отсутствием мощной  и  в то же время  свободно доступной Unix-подобной операционной системы. Операционная система DOS,  продукт  корпорации  Microsoft, была  для  Торвальдса полезна только лишь, чтобы  поиграть в игрушку "Принц Персии", и не для  чего больше. Линус  пользовался операционной системой Minix, недорогой Unix-подобной операционной системой, которая была  создана в  качестве учебного пособия.  В этой  операционной системе ему не  нравилось отсутствие возможности легко  вносить и  распространять изменения исходного кода  (это  запрещалось лицензией ОС Minix), а также  технические  решения,  которые использовал автор  ОС  Minix.

Читать »

Управление процессами

Добавлено Дата: 15 April, 2012 категория: Ядро Linux

роцесс   одно  из  самых  важных  абстрактных понятий в Unix-подобных операционных системах1. По  сути, процесс—  это  программа, т.е.  объектный код, хранящийся на  каком-либо  носителе информации и  находящийся в  состоянии исполнения. Однако процесс — это  не  только  исполняемый программный код, который  для  операционной  системы Unix  часто  называется text section (сегмент  текста или  сегмент кода).  Процессы также  включают в себя  сегмент данных (data  section),  содержащий глобальные переменные;  набор   ресурсов,  таких  как  открытые файлы и ожидающие на  обработку сигналы; адресное пространство и один  или  более  потоков

Читать »

Исключения – ошибки в программах

Добавлено Дата: 14 April, 2012 категория: Java

Скажем, вы  забыли закрыть фигурные скобки в своем  Java-­?коде. Это  приведет к ошибке компиляции, которую можно легко исправить.  Но  существуют ещё ошибки времени исполнения (run-­?time  errors), когда совершенно неожиданно, программа перестаёт работать, как положено. Например, Java-­?класс считывает файл со счётом в игре. Что произойдёт, если  кто-­?то удалит этот файл? Остановится ли программа с длинным и страшным сообщением  об ошибке,  или  продолжит  работать,  выдав дружелюбное сообщение, типа:

Читать »

Оператор if-else

Добавлено Дата: 12 April, 2012 категория: Java

Одним из основных средств управления выполнением программы является оператор if, который позволяет решить, нужно ли производить те или иные действия. Его синтаксис выглядит следующим образом:

if (логическое выражение)

оператор1

else

Читать »