» Главная
eXcode.ru » Статьи » .NET » C#
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 12





Взаимодействие управляющая среда и небезопасный код




Осборн: Расскажите поподробнее о том, как взаимодействует управляющая среда и небезопасный код.

Хейлсберг: Одним из свойств, характеризующих окружения, управляющие выполнением, как в SmallTalk, Java, и .NET CLR (общая среда выполнения), является то что они обеспечивают сбор мусора. А чтобы обеспечить сбор мусора, а особенно с современными сборщиками мусора, вам необходимо знать о выполняемом коде больше, чем вы знали о традиционном неконтролируемом коде. Для того чтобы находить мертвые объекты методом исключения, вам необходимо прогуливаться по стэку, опускаться до самых корней, и выяснять какие объекты живут и какие больше не используются. Несмотря на то, делать это возможно, требуется более близкая связь между кодом, который вы выполняете. Код должен описывать многое. Нужно чтобы он говорил, как он расположен в стеке, где его локальные переменные и так далее.

Когда вы пишете программу на C#, вы имеете возможность делать не типозащищенные операции, например, работа с указателями. Код, естественно, маркируется как небезопасный, но это не значит, что он будет запускаться в недоверяющей среде. Чтобы запустить код, вы должны заслужить доверия, если вы этого не сделаете - код запущен не будет. В этом отношении он не отличается от других примеров native кода. Настоящее различие заключается в том, что он все же выполняется в контролируемом пространстве. Методы, которые вы пишете, будут иметь таблицы описаний, они скажут вам какие объекты живы, и не придется пересекать границу порядка при переходе к этому коду. В отличие от этого, когда вы переходите к неописанному, неуправляемому коду (как например, в Java Native Interface), вам необходимо использовать специальные метки или воздвигать барьер в стэке. Вам нужно пересортировывать все аргументы, которые располагаются вне блока. Используя объект вам нужно быть предельно осторожным, так как СМ [Сборщик мусора], все еще работает в другом потоке (thread). Он может удалить объект, если вы не закрепили его надежно, использованием некоторого скрытого метода, делающего объект закрытым. Если же вы забудите сделать это - полагайтесь только на свою удачу.

Мы применяем другой подход. Мы говорим: "Давайте обеспечим взаимодействие с языком. Давайте предложим фиксированные операторы, которые позволят вам закреплять объект, совместно с СМ". Путь по которому мы идем, позволяет оставить работать весь существующий код, вместо того чтобы просто его выкидывать. Это совершенно иной подход.

Осборн: Так память, с которой мы работаем в небезопасных блоках, на самом деле просматривается сборщиком мусора?

Хейлсберг: Да это так, но все это небезопасно. Вы можете получить указатель и сделать что-либо плохое. Но вы также можете сделать это в native коде.

Источник: www.cyberguru.ru

К началу статьи





Добавил: LedWormДата публикации: 2008-02-29 14:00:32
Рейтинг статьи:4.00 [Голосов 3]Кол-во просмотров: 12894

Комментарии читателей

Всего комментариев: 3

2012-07-22 22:41:22
podal-prodal.ru
<a href=http://www.podal-prodal.ru/>сайт бесплатных объявлений</a>

2011-10-01 21:14:02
2003303
Напишите

2009-02-08 04:08:09
slutozator
Это реальная история. Я решил ее поведать вам, что бы рассказать о жизненных ситуациях которые могут произойти с каждым из вас.
Как всегда это случилось в самый неожиданный момент когда Кольки на жена уехала к своим родителям
Мы не долго думая решили [b]вызвать хлюшек[/b]. Как всегда из закладок вызываем каталог [url=http://ru.xxl4vip.com]Московских проституток[/url] и ищем подходящих телок.
Вот [b]две проститутки[/b] названы и вызваны к Кольке на квартиру. Мне пришлось бежать в магазин за сопутствующими товарами и выпивкой
Первая телочка прибыла раньше второй на 20 минут. За это время мы уже успели захмелеть и познакомиться с первой [b]проституткой[/b].
Вторая была просто фото модель. Титьки, жопа, фигура и главное лицо были как с обложки глянцевого журнала. Даже не верилось что эта девушка [b]проститутка[/b].
Она долталась мне, так как Колько уже достаточно выпил и ему было все равно с кем быть.
Все шло отлично и близилось к тому что уже собирались какждый уединиться в отдельной комнате. Но тут в дверь неожиданно позвонили.
Как вы думаете кто это был? Да, да, Светка, Колькина жена. И что нам оставалось делать? ......
Как вы думаете? Ваши мнения господа. Кто и как вышел из этой ситуации будь на месте Кольки.
Окончание в следующем посте.
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Каким способом вы подключены к интернету
Dial-Up
26% (59)
ISDN
1% (2)
Выделенная линия
27% (61)
ADSL
32% (71)
Спутниковый интернет
2% (5)
GPRS-интернет
8% (17)
Другое
4% (9)

Проголосовало: 224
Посылает жена мужа-программера за продуктами на рынок и говорит:
- Значит так: купишь хлеба, молока, сметаны, яиц, картошки и лука. А чтобы быстрее было, встанешь в одну очередь, займешь там место и отойдешь, потом в другую и т д...
Бедный программер занял место в одной очереди, в другой. Купил яйца, бросился покупать картошку, пока покупал хлеб - забыл свое место в очереди за луком. Полез - по репе дали. Купил молока - рассыпал картошку и уронил хлеб. Поскользнулся на картошке, упал - пакет молока выронил на землю, тот взорвался. Всех молоком облило. Опять бедняга по морде получил. В процессе драки ударили по авоське с яйцами. Те разбились и вытекли прямо программеру на костюм. И вот сидит он на земле весь в синяках, яйцах, молоке и картошке, чешет репу и думает:
- Б@#! А фигово пока у меня реализована многозадачность...
Рейтинг: 3.8/10 (4)
Посмотреть все анекдоты