|
Тема |
Re: Приоритети в NT [re: MиГ] |
|
Автор |
Balam (непознат
) |
|
Публикувано | 14.11.01 22:22 |
|
|
Ah, za suzalenie ne sum zapoznat kak diskovete v dneshno vreme rabotiat :( No mi se struva, che dori i da napravish programa za chetene na sektori direktno ot diska, izmervaneto na vremeto niama da bude mnogo tochno poradi limitacii na architekturata v NT. Za da razberesh za kakvo govoria, bih ti obiasnil kak se pravi chetene na sektori na nisko nivo, no shte triabva da izturpish polzvanite ot men angliiski temini:
Za da se prochete informacia na nisko nivo, client-a obshto vzeto triabva da polzva interface-a za memory manager, caching, i otchasti suotvetnia disk draiver. S pomoshtta na memory manager-a i caching se pravi memory map, zapochvashta sus purvia sektor za chetene, i s dulzina na broia sektori koito triabva da se prochetat. Tazi memory map se konfigurira taka, che kogato exception se poiavi v neia, informaciata se prochita ot diska (podobno na nachina na polzvane na paging file). Ta tazi memory map se markira kato ne-prochetena, i posle se pravi read ot pametta suotvetvashta na vseki edin ot sektorite. Pri vseki memory access, exception se generira, i suotvetnia draiver obsluzva zapulvaneto na pametta s validna informacia (demek taia ot diska). Tova obsluzvane se izvurshva vutreshno v disk draivera, i pochti vinagi stava asynchronous i ot high priority tasks.
Taka che, ako ti po niakakuv nachin uspeesh da zabranish procesi da se izpulniavat kogato iskash da chetesh ot diska, nai-veroiatno cheteneto ot samia disk shte uvisne dokato procesa koito obsluzva cheteneto ne e osvoboden. I poradi sushtoto tova "asynchronous" chetene, izmervaneto na vremeto niama da e tochno, tui kato ne ti e garantirano koga procesa izvurshvasht istinskata rabota zapochva i svurshva.
Moia suvet e da se razrovish malko iz dokumentaciite za disk draiveri, i da vidish dali te ne ti davat vuzmoznost za "query" na loshite sektori.
|
| |
|
|
|