Помогите понять значение данного дизассемблирования.

Тема в разделе "WASM.HEAP", создана пользователем melinion, 25 мар 2011.

  1. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    NeuronViking
    Верно.

    Пытаюсь докопаться до спинлока и понять чем он от мутекса отличается, кроме того что поток на заблокированном спинлоке находится в активном ожидании в цикле, а на заблокированном мутексе засыпает после чего планировщик переключает контекст. Вот ищу в исходниках истину... Может быть даже найду:)
     
  2. melinion

    melinion New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2011
    Сообщения:
    7
    Большое спасибо!!!
     
  3. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    Написано:
    test_and_set_bit - Set a bit and return its old value
    This operation is atomic and cannot be reordered.


    Код (Text):
    1. lock bts addr, nr
    2. sbb oldbit,oldbit
    Почему set a bit and return its old value - это атомарная (неделимая) операция? А если после первой инструкции произойдет переключение контекста (то есть до того как CF запишется в oldbit), где тогда атомарность? Кто-нибудь знает?

    Или под неделимой операцией подразумевается только проверка и установка бита, а возврат прошлого значения бита в неё не входит?
     
  4. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Не хочется грубить... Какая инструкция выставляет флаг в CF? lock bts или sbb? Вернее, не так... CF после какой операции тебе нужно знать? lock bts или sbb? Что такое переключение контекста и что оно подразумевает? Включаем моск, включаем.

    З.Ы. Такую тему надо в WASM.BEGINNERS переместить однозначно.
     
  5. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Nafanya
    подолью маслеца.
    а ить там еще есть call и ret, которые тоже не атомарные и к памяти обращаются. знаете кто нибудь?
     
  6. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    После выполнения любой инструкции может переключиться контекст на другой поток, а атомарность должна гарантировать неделимость операции в целом.

    Хотя бы там прерывания на время выполнения функции должны запрещаться (чтоб контекст не переключался) или ещё что-то...

    А то может прям перед ret проц переключиться на другой поток и плакала вся атомарность...
     
  7. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    :facepalm:
     
  8. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    если тебе лениво читать мануалы, возьми и скомпилируй этот кусок кода затем открой дизасмом и посмотри во что превращаются эти волшебные строки.
    сделав так, ты бы уже давно нашел все ответы. а так видится что ты пофлеймить захотел чесслово.