Co oznacza „bit” w systemie operacyjnym

4

Wiem, że na rynku jest 32/64 bitowy system operacyjny.
Q1- & gt; Ale co to właściwie znaczy?
Q2- & gt; Jaki jest najniższy bit OS i najwyższy bit OS?

Sourav
źródło

Odpowiedzi:

9

Ale co to właściwie znaczy?

Oznacza to liczbę bitów używanych do adresowania w pamięci.

Pamięć składa się z ogromnej liczby bajtów. Każdy bajt ma unikalny adres. Pamięć można traktować jako ulicę z domami, gdzie dom reprezentuje bajt *, a numer domu to adres. Teraz wyobraź sobie, że ktoś decyduje, że numery domów powinny zawsze mieć 3 cyfry. Oznacza to, że najniższa liczba domów wynosi 000, a najwyższa 999. Jest to proste i łatwe, ale oznacza to, że nie można mieć więcej niż 1000 domów, po prostu brakuje numerów domów.

To samo dotyczy twojej pamięci: x Bity to liczba cyfr, które adresujesz. Jedyną różnicą jest to, że liczby są binarne. 32-bitowy system operacyjny używa liczb binarnych o dokładnie 32 cyfrach (cyfra binarna = trochę).

Zatem w systemie 32-bitowym możesz mieć 2 ^ 32 możliwych adresów, co stanowi około 4 miliardy. 4 miliardy bajtów to 4 GB. Jeśli twoja pamięć ma więcej niż 4 GB miejsca, co oznacza, że ​​możesz użyć tylko 4 GB dostępnej pamięci, ponieważ po prostu nie masz adresów dla pozostałej części pamięci.

Obecnie stało się normalne posiadanie ponad 4 GB pamięci RAM i oczywiście chcemy korzystać z tej pamięci. W tym przypadku potrzebne jest rozwiązanie, a najprostszą rzeczą, jaką możemy zrobić **, jest zwiększenie przestrzeni adresowej. Podczas gdy jakakolwiek wyższa liczba bitów byłaby wystarczająca, zazwyczaj po prostu podwoilibyśmy liczbę bitów z 32 do 64. Mamy więc adresy dla 2 ^ 64 bajtów, czyli 16 * 2 ^ 60 bajtów lub 16 eksabajtów.

Zauważ, że marketingowcy czasami próbują przekonać nas, że 64-bitowe systemy operacyjne / procesory są w jakiś sposób szybsze niż 32-bitowe odpowiedniki. Nie jest to jednak prawda ***. Faktycznie zwiększenie rozmiaru adresu spowalnia działanie, ponieważ im większa liczba, tym więcej czasu i obliczeń zajmuje się obliczaniem adresów. Korzystanie z 64-bitowego procesora / systemu operacyjnego jest całkowicie bezcelowe, jeśli pamięć jest wystarczająco mała, aby można było w pełni zaadresować ją za pomocą 32-bitowego.

Jaki jest najniższy bit OS i najwyższy bit OS?

Nie ma limitu bitów, których możesz użyć. „Jeden bit systemu operacyjnego” nie ma sensu, ponieważ oznaczałoby to, że komputer nie może mieć więcej niż 2 bajty pamięci. Myślę, że zejście systemów operacyjnych zaczyna się od 8 bitów. 32-bitowy jest najbardziej powszechny, chociaż 64-bitowy znacznie rośnie i ostatecznie zastąpi 32-bitowy. Słyszałem o niektórych komputerach mainframe, które mają 128 bitów, ale nie wydaje mi się, aby istniało coś wyższego, ponieważ 128bit daje już niewyobrażalną dużą liczbę adresów ;-).

* Nie musi to być jeden adres na bajt. Jest to najbardziej powszechna jednostka w dzisiejszej architekturze, ale teoretycznie moglibyśmy również wybrać pojedynczy bit lub wiele bajtów. Na przykład. Wirtualna maszyna Java adresuje czasami w wielokrotności 4 bajty wewnętrznie. Jednak aby móc to wykorzystać, potrzebujesz wsparcia zarówno procesora, jak i systemu operacyjnego.

** Oczywiście są też inne możliwości. Na przykład. istnieje PAE (rozszerzenia adresów fizycznych). To rozwiązanie dzieli pamięć na mniejsze segmenty, w których każdy segment ma nie więcej niż 4 GB. Dzięki PAE możesz adresować do 64 GB. To było powszechnie używane na serwerach, które miały więcej niż 4 GB pamięci RAM, zanim 64-bitowe procesory stały się powszechne.

*** Cóż, nowe 64-bitowe procesory oczywiście są szybsze niż stare 32-bitowe procesory. Ale nie dlatego, że są 64-bitowe, po prostu dlatego, że procesory ewoluowały ogólnie. Gdybyśmy zbudowali nowy 32-bitowy procesor ze wszystkim, czego dowiedzieliśmy się w międzyczasie, byłby szybszy niż dzisiejszy 64-bitowy procesor.

yankee
źródło
„ponieważ 128-bitowa daje już niewyobrażalną dużą liczbę adresów ;-).” To przypomina mi Billa Gatesa „640K powinno wystarczyć każdemu”. . (FYI: Właściwie Bill Gates nie powiedział, że ... :( )
JiminP
1
@ yankee Co miałeś na myśli przez „zwykle każdy adres spinki do mankietów na jeden bajt ”- (podkreślenie moje). Czy możesz to wyjaśnić trochę?
Geek
1
@Geek: Pomyśl o mieście tylko jedną wyjątkowo długą drogą. Domy nadal mają numery i dla uproszczenia wszystkie domy mają dokładnie taki sam rozmiar. Powiedziałbym, że numer domu łączy się z domem. Nie pokój, drzwi ani cegła. „Dom” to bajt, a „adres” numer domu. Może jest lepsze słowo niż „linki”. Może „odnosi się” ...
yankee
Źle zrozumiano, że „ponieważ każdy adres zwykle łączy się z jednym bajtem”. Myśli w mojej głowie: 32-bitowy = 4 bajty do adresowania, więc każdy adres jest mapowany na 4 bajty, nie 1 bajt .. a potem upuszcza się pensa :) Odwrócę to i powiem, że „każdy bajt w pamięci powinien mieć (iw rzeczywistości ma) swój unikalny adres, więc nie możesz mieć więcej niż 4 miliardy unikalnych bajtów, czyli 4 GB ”.
pkuderov
1
@pkuderov: Dzięki za informację zwrotną, przepisałem części mojej odpowiedzi.
yankee
2

„Bity” procesora mogą w rzeczywistości oznaczać wiele rzeczy; Wewnątrz i na zewnątrz procesora jest sporo rzeczy, które są ograniczone liczbą bitów. Jednak w przypadku procesorów x86 są następujące różnice:

  • Procesory 64-bitowe mogą pracować z dużo większą ilością pamięci RAM bez obejść, takich jak PAE niż procesory 32-bitowe.
  • 64-bitowa architektura AMD, która stała się dominującą, dodała do CPU więcej rejestrów ogólnego przeznaczenia. Rejestry są tymczasowymi obszarami przechowywania dla obliczeń znacznie szybszych niż pamięć RAM.
  • Wszystkie rejestry w CPU są 64-bitowe. Oznacza to, że CPU może pracować z większymi wartościami przy mniejszej liczbie instrukcji.

Jeśli chodzi o kompatybilne z PC procesory Intel, najniższym bitowym systemem operacyjnym są 16-bitowe systemy operacyjne, takie jak DOS, CP / M-86, Xenix i Windows 3.x. Intel wyprodukował kilka 8-bitowych układów (8008, 8080), które działały w wariancie CP / M, jeśli się nie mylę, i oczywiście jest stary 4004, który jest 4-bitowym układem, ale nigdy nie działał na żadnym OS. W tej chwili nikt nie produkuje 128-bitowego układu zgodnego z architekturą x86 lub wyższego.

LawrenceC
źródło