Работа планировщика задач

Kernel architecture questions
  • Сделал тесты с увеличенным количеством тиков в кванте без изменения частоты таймера. Чем больше тиков, тем ровнее распределение времени. Но на длинных квантах начинаются проблемы со звуком, как и ожидалось.
  • Serge wrote:Сделал тесты с увеличенным количеством тиков в кванте без изменения частоты таймера. Чем больше тиков, тем ровнее распределение времени. Но на длинных квантах начинаются проблемы со звуком, как и ожидалось.
    Мы же вроде обговаривали повышение частоты? С повышением не должно быть проблем со звуком.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Я не менял частоту для упрощения теста и чтобы не ломать таймеры в ядре. На равномерность распределения времени она влияет слабо. На практике, если делать квант длиннее 10мс надо вводить приоритеты потоков.
  • а я со своей стороны добрался наконец до регистров LAPIC.
  • Serge,
    ты не знаешь, как в этого блэкджека нужно записывать end of interrupt ?

    Code: Select all

    apic_timer_reset:
    	xor	eax, eax
    	mov	[0x8006D000], eax
    	mov	ebx, LAPIC_BAR+ 0x320
    	mov	eax, [ebx]
    	and	eax, 0xFFFEFF00
    	or	eax, 0x0002003F       ; int vector + autostart
    	mov	[ebx], eax
    	ret
    
    
    apic_timer_int:
    	inc	dword [0x8006D000]                       ; interrupts counter
    	mov	dword [LAPIC_BAR + 0x420], 0x3F     ; end of interrupt
    	iretd
    
    таймер крутится, но прерывание срабатывает только один раз.

    UPD: Всё, заработало!!
    надо было еще

    Code: Select all

    mov dword[LAPIC_BAR + 0x0B0], 0 
  • Who is online

    Users browsing this forum: No registered users and 4 guests