Mac OS X - pohled do základů - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Odkud pochází fotografka Anne Erhard?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



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):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: