Page 221 - Hướng Dẫn Cách Phòng Thủ Và Khắc Phục Sự Cố Máy Tính
P. 221

size=lbytes-lMbyte(2'^20)  nếu  G=1  thì  đoạn  có  size=4K-
    4G
        4.  Cò  s   1  bit:  s=0:  đoạn  kernel,  s= l:  đoạn  bình
    thường.
        5.  4  bit  Type:  có  các  type  sau  đây;  Code,  Data,  Task
    State  đây là  đoạn  đặc biệt chỉ  có  trong  GDT  dùng  để chỉ
    ndi chứa các dữ liệu liên quan các task. Khi SCHED muốn
    swap task sẽ đọc trong đây là phục hồi các giá trị của task.
    Local  Descriptor Table  đây  cũng là  đoạn  đặt biệt chuyên
    chưa các LDT của các task và chỉ có trong GDT.
        6.  2  bit  DPL:  Quyền  thấp  nhất  được  truy  xuất  đoạn
    này.  CPU 1386 cho 4 mức quyền 0 là cao nhất tương đương
    với  kernel.  Còn  3  là  User Application.  Nếu  DPL cho  một
    segment là 0 thì User application không thể truy xuất vào
    đoạn này.

        7. Các bit còn lại không dùng.
        Các thanh ghi segment selector (cs,ds,ss,es,gs,fs)
        Mỗi khi một giá trị được set trong một thanh ghi segment
    selector thì CPU sẽ tìm 8 bytes mô tả tương ứng của selector
    tải vào thanh ghi nội bộ. Vì vậy việc chuyển địa chỉ không cần
    truy xuất GDT hay LDT một cách thường xuyên. Mỗi thanh
    ghi segment selector có 16 bít trong đó:
        1.  13 bit chỉ mục:chỉ 1 mục trong GDT hay LDT
        2.  Cờ  1  bit  TI  :  0:  đoạn  này  trong  GDT,  1:  đoạn  này
    trong LDT
        3.  2  bit  RPL:  Từ  0-3  chỉ  mức  yêu  cầu  truy  cập  đoạn
    này  chỉ  có  tác  dụng  với  c s   Theo  tài  liệu  Intel  thì  khi  1
    process  set  thanh  ghi  c s   thì  RPL  có  thể  nạp  với  những
    mức thấp hơn hay bằng mức mà process có quyền. Theo tôi
    hiểu thì như vậy một process kernel có thể chạy một đoạn
   code với quyền thấp hơn ví dụ set RPL=3 chẳng hạn.



    222
   216   217   218   219   220   221   222   223   224   225   226