Selektor (informatyka)

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Selektor – 16-bitowa struktura stanowiąca część adresu logicznego używana w mechanizmie segmentacji. Wskazuje ona tablicę deskryptorów i deskryptor w tej tablicy i jest wykorzystywana w trybie chronionym procesorów zgodnych z architekturą x86.

System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.

Selektor jest przechowywany w 16-bitowych rejestrach segmentowych i chociaż istnieje możliwość zmiany zawartości rejestrów segmentowych, to zwykle selektory są określane statycznie, na etapie kompilacji i linkowania programu. W przypadku procesorów 32-bitowych (IA-32) rejestry segmentowe nadal są 16-bitowe, lecz wielkości segmentów określane w deskryptorach są już 32-bitowe. Pozwoliło to większości 32-bitowych systemów operacyjnych na zadeklarowanie jednego segmentu o wielkości obejmującej całą dostępną pamięć operacyjną. Celem takiego postępowania jest obejście mechanizmu segmentowania, ponieważ nie ma możliwości jego wyłączenia, i korzystanie tylko z mechanizmu stronicowania pamięci, który to pojawił się właśnie w architekturze IA-32 wraz z możliwością wywłaszczania procesów.

Wywłaszczenie – technika używana w środowiskach wielozadaniowych, w której algorytm szeregujący (scheduler) może wstrzymać aktualnie wykonywane zadanie (np. proces lub wątek), aby umożliwić działanie innemu. Dzięki temu rozwiązaniu zawieszenie jednego procesu nie powoduje blokady całego systemu operacyjnego. W systemach bez wywłaszczenia zadania jawnie informują scheduler, w którym momencie chcą umożliwić przejście do innych zadań. Jeżeli nie zrobią tego w odpowiednim czasie, system zaczyna działać bardzo wolno. Oprócz tego wywłaszczanie umożliwia szczegółowe określanie czasu, w jakim dany proces może korzystać z procesora. Wywłaszczanie w niektórych systemach operacyjnych może dotyczyć nie tylko programów, ale także samego jądra – przykładem takiego systemu jest Linux.Tablica deskryptorów - w trybie chronionym procesora x86 struktura ulokowana w dedykowanym segmencie, zawierająca deskryptory wszystkich segmentów znajdujących się w pamięci operacyjnej. W środowiskach wielozadaniowych wyróżniamy jedną wspólną tablicę globalną (GDT - ang. Global Descriptor Table), tablicę przerwań (IDT - ang. Interrupt Descriptor Table), a także tablice lokalne (LDT - ang. Local Descriptor Table) przypisane do każdego procesu w systemie (nowoczesne systemy operacyjne nie korzystają już z segmentacji). Typowa tablica deskryptorów może pomieścić 2 8-bajtowych wpisów, gdyż jej rozmiar to 64 kB.

Struktura selektora:

 15                                    3  2   1  0 
+---------------------------------------+---+------+
|            indeks                     |TI | RPL  |
+---------------------------------------+---+------+
  • indeks (13 bitów) – indeks w tablicy deskryptorów (0÷8191);
  • TI (1 bit; ang. table indicator, wskaźnik tablicy) – określa czy deskryptor znajduje się w globalnej tablicy deskryptorów GDT (TI=0), czy lokalnej LDT (TI=1);
  • RPL (2 bity; ang. Requested Privilege Level, wymagany poziom uprawnień) – stanowi mechanizm ochronny. Określa prawa dostępu do danego segmentu i może przyjmować wartości od 0 (wymagany jest najwyższy poziom uprawnień przy dostępie do tego segmentu) do 3 (dostęp w trybie użytkownika).
  • Proces – jedno z podstawowych pojęć w informatyce, definiowane jako egzemplarz wykonywanego programu. Każdy nowo powstały proces otrzymuje unikatowy numer, który go jednoznacznie identyfikuje, tzw. PID (od (ang.) process identifier).Rejestr segmentowy – rejestr procesora stworzony do przechowywania adresu początkowego obszaru pamięci, w którym umieszczone są rozkazy, dane albo stos programu. W procesorach o architekturze x86 występuje 6 rejestrów segmentowych:




    Warto wiedzieć że... beta

    Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.
    Tryb chroniony (ang. protected mode) – tryb pracy mikroprocesorów serii x86 wprowadzony w mikroprocesorze Intel 80286. Tryb chroniony umożliwia adresowanie pamięci przekraczającej wielkość 1 MB (tryb rzeczywisty), wprowadza wiele nowych udogodnień wspierających wielozadaniowość, takich jak: sprzętowa ochrona pamięci (układ MMU), wsparcie w przełączaniu kontekstu procesora i wiele innych.
    IA-32 (Intel Architecture 32 bit) – 32-bitowy model programowy mikroprocesora opracowany przez firmę Intel. Nazywany czasem x86-32, jako że opiera się na 32-bitowym rozwinięciu modelu programowego rodziny x86. Architektura IA-32 zaliczana jest z reguły do kategorii CISC, choć technologie wprowadzane stopniowo w nowszych wersjach procesorów IA-32 spełniają także wiele cech procesorów RISC.
    Architektura procesora - wspólne określenie najważniejszych z punktu widzenia budowy i funkcjonalności cech procesora. Na architekturę procesora składają się:
    Działanie związane z optymalizacją dla wyszukiwarek internetowych - zmierzające do zwiększenia liczby i jakości odnośników do strony.
    Bit (w ang. kawałek, skrót od binary digit, czyli cyfra dwójkowa) – najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych stanów przyjął układ. Jednostka logiczna.
    x86 – rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem 8086, który z kolei wywodził się z 8-bitowego układu 8085. Nazwa architektury wywodzi się od nazw pierwszych modeli z tej rodziny, których numery kończyły się liczbą 86.

    Reklama