Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Mac OS X - pohled do základů
macosx_shot
13. srpna 2001, 00.00 | Zajímá vás, na jakých základech vlastně Mac OS X stojí? Co to je Mach kernel, jak funguje preemptivní multitasking a jaké má výhody a k čemu vám bude pod Mac OS X více procesorů v počítači?
Dnes už asi všichni vědí, že původ operačního systému, který Steve Jobs představuje jako nejmodernější na světě, leží někde v NeXTSTEPu a OPENSTEPU. Co to však znamená z té techničtější stránky je asi trochu jasné programátorům, ale běžný uživatel zřejmě nemá ani ponětí. Proč taky? No, přeci proto, aby mohl svého maca hájit proti těm "štastnějším" uživatelům s operačním systémem Microsoft Windows.Mach
Základem MacOS X je jádro (kernel), v našem případě se jmenuje Mach. Jádro se stará o základní služby v počítači, jako je předávání instrukcí procesoru, práce s pamětí skutečnou i virtuální. Jde o jádro velmi dobře vyzkoušené a s tradicí dlouhou už asi 15 let. Důvod, proč byl vybrán právě Mach, leží v technologii i lidech. Mach 2.5 byl funkční na PowerPC procesorech již delší dobu a vzhledem k tomu, že MacOS X má být (a svým způsobem již je) velmi složitý systém, který zároveň řeší požadavky programů běžících v Cocoa, Carbonu, BSD a v Javě, poskytoval skvělý základ.
Pokud jsem se zmínil o lidech, myslel jsem tím člověka, který je u společnosti Apple zodpovědný za software. Avie Tevenian byl totiž jedním z původních autorů Machu v době jeho vývoje na univerzitě Carnegie Mellon. A jen malá poznámka na závěr. Mach v žádném případě není úplný operační systém. Přestože se stará o základní funkce v počítači, některé zcela zásadní části úplně chybí. Mezi ně patří třeba schopnost připojení a komunikace s počítačovou sítí.
Multitasking
Multitasking je schopnost dělat více věcí zároveň. Pro zjednodušení si představme následující situaci. Člověk sedí u stolu, čte noviny, jí oběd a odpovídá na otázky svého kolegy. Přestože nedělá všechny tyto věci úplně zároveň, je nutné, aby vždy na chvilku přerušil to, co právě dělá a věnoval svůj čas další záležitosti. Přeneseme-li se nyní do oblasti programování, každý z úkolů, o kterých jsme hovořili, se nazývá "task". Neni úplně nutné, aby samostatný task byl celá aplikace, naopak, je mnohem lepší, pokud je to jen samostatná část v programu (v tomto případě se task nazývá "thread" ). Zcela jistě je pro vás běžná situace, kdy máte na počítači spuštěných více aplikací a uvnitř těchto aplikací běží další procesy.
Možná jste již zaslechli vášnivé diskuse týkající se pojmů kooperativní nebo preemptivní multitasking. Jedna strana zastává jednu technologii, druhá strana druhou a jsou asi stejně nesmiřitelní, jako zastánci Jablíček a Oken. Praxe ukazuje, že pro běžného uživatele je lepší preemptivní multitasking, kdežto pro některé speciální případy je zase výhodnější varianta kooperativní. Co to znamená v praxi? Ukážeme si to opět na příkladu. Představte si děti na pískovišti, které mají jen jednu formičku. Jakmile se jí jedno z nich zmocní, hraje si s ní do omrzení a až potom ji nechá ostatním. Toto je kooperativní multitasking (i když v mém případě příliš spolupráce nebylo :)) Pokud na naše pískoviště přijde starší bratr, který nám začne děti organizovat, dojde k tomu, že ty nejmenší si budou hrát s formičkou delší dobu než ty větší, ale na všechny se dostane v relativně krátké době. A to je preemptivní multitasking. Jeho podstata je v tom, že existuje někdo, kdo rozděluje bábovičku. MacOS 8 a 9 používá kooperativní multitasking, což víceméně znamená, že můžete pracovat v Adobe Photoshopu a současně vám běží hodiny v liště, ale uvnitř programu musí být napsáno, aby po ukončení každé malé operace na chvíli povolil běh i ostatním. Tento systém má své výhody. Pokud opravdu potřebujete 100% výkonu počítače pro sebe, můžete ho v případě kooperativního multitaskingu dostat, což se ve druhé variantě řeší velmi problematicky.
SMP aneb Symmetric multiprocessing
Častou otázkou bývá, zda další procesor v počítači PowerMac G4 zvýší jeho výkon. Ti z nás, kteří si koupili některé z dostupných víceprocesorových konfigurací, které byly u nás na trhu, často dost rozpačitě tvrdí, "že to není poznat". Svým způsobem mají pravdu, protože až do systému MacOS 9 nebyl samotný Finder, tady ta část MacOS, se kterou aktivně komunikuje uživatel, napsaná tak, aby dva procesory využívala. Prakticky to znamená to, že když vlastníte PowerMac G4/450MP, tak při běžné práci druhý procesor nic nedělá. K tomu, aby aplikace druhý procesor používala, musela být napsaná pomocí speciálních funkcí. Mezi programy, které byly takto napsány, patří Adobe Photoshop (některé jeho části a filtry), FinalCut, MediaCleaner a pár dalších. V MacOS X je multiprocesorově napsán už Finder a Mach s tím samozřejmě také nemá problémy. Pokud tedy na zmíněný počítač nainstalujete MacOS X, měli byste být schopni na první pohled poznat, že se jedná o více procesorový stroj. (Zkoušel jsem to a je to vidět.) A teď trochu k tomu multiprocessingu.
Mach by teoreticky neměl mít problém s libovolným počtem procesorů, i když u SMP se většinou počítá s maximálním počtem 16 procesorů. SMP znamená, že více procesorů sdílí jeden operační systém a paměť. Technicky musí dojít k tomu, že ať se jakýkoliv procesor zeptá na jakoukoliv platnou adresu v paměti, vždycky dostane stejnou odpověď. Bez té podmínky by SMP nemohlo fungovat. U asymetrického multiprocessingu si každý procesor vytvoří unikátní obrázek o paměti, který je úplně jiný než u dalších procesorů. Zmíněný systém vede k tomu, že se úkoly rozdělují spravedlivě mezi všechny procesory. A zaměníte-li slovo úkol slovem task, máte před sebou celý koncept tak, jak funguje. V jedné aplikaci běží několik nezávislých úkolů, které se v případě víceprocesorové konfigurace rozdělí na jednotlivé procesory a tím dojde k urychlení zpracování. Pro zvýšení výkonu aplikace je tedy základním předpokladem to, že bude naprogramovaná z více úkolů. Avšak i když takto napsaná nebude, využije se toho, že je tak napsaný operační systém a ten přidělí jednu aplikaci na jeden procesor a další na druhý procesor a tak dále.
Obsah seriálu (více o seriálu):
- Mac OS X - příjezd na čas
- Mac OS X - Instalace
- Mac OS X prakticky 1.
- Mac OS X - podpora českého prostředí
- Mac OS X - tak trochu utajený update
- Mac OS X prakticky 2.
- Mac OS nebo X?
- Mac OS X pro všechny - nyní i v Čechách
- Hledá se majitel souboru!
- Mac OS X - domovská složka a plocha
- Mac OS X - pohled do základů
- Mac OS X - uživatelské rozhraní zblízka, 1. část
- Mac OS X - uživatelské prostředí zblízka, 2. část
- Mac OS X - uživatelské prostředí zblízka, 3. část
- Mac OS X: uživatelské prostředí zblízka 4
- Novinky v Mac OS X 10.1, 1. část
- Novinky v Mac OS X 10.1, 2. část
- Mac OS X v síti...
- Novinky v Mac OS X, 3. část -jak se tiskne...
- Mac OS X pod kapotou - resources
- NetInfo - síťové centrum Mac OS X
- Uložení dat v NetInfu, aneb stromy ve stromech
- K vašim službám...
- ColorSync 4 - krok k Microsoftu?
- NetInfoManager, aneb přímá cesta do databáze
- K vašim službám 2: co nabízí Apple
- Mac OS X Server 10.1 - instalace, 1. část
- Některé standardní klíče a adresáře v NetInfu
- Další standardní klíče a adresáře v NetInfu
- K vašim službám 3: co nabízejí ostatní
- MacOS X Server 10.1 - instalace, druhá část.
- K vašim službám 4: vyhrazeno pro programátory
- Mac OS X a čeština
- K vašim službám 5: stále vyhrazeno pro programátory
- Tisk do souboru v OS X
- Growl - hračka nejen pro vývojáře
- PathFinder 4 - Když Finder nestačí
- RSS sem, RSS tam, co já s nimi udělám?
- Aplikace pro snadné používání služby Twitter
- Popis grafického rozhraní Mac OS X.