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

 

Kde se narodil známý fotograf František Drtikol?

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  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Malinko bych nesouhlasil...

Autor: OC Muž

Založeno: 13.08.2001, 10:51
Odpovědí: 0

Dovolil bych si tvrdit, ze (a) kooperativni multitasking nema _zadne_ vyhody (viz priority na konci), a (b) ze "100% vykonu pro jednu aplikaci" je z praktickeho hlediska nebezpecna iluse.

Proc?

Jde o to, ze takove veci jako napr. obsluha site, obsluha preruseni casovace, obsluha FireWire... etc. stejne musi fungovat. Jediny rozdil je v tom, ze v kooperativnim mt se na to musi pouzivat "nestandardni" prostredky (zjednodusuji, samozrejme!), zatimco v preemptivnim to mohou obsluhovat zcela standardni tasky.

Pokud nejaky realtime task potrebuje "byt vzdy prvni", neni problem mu zvednout prioritu, takze pokud takovyto task je schopen pracovat (sam na neco neceka), zadny jiny task s nizsi prioritou proste CPU nedostane. ("Starsi bratr babovicku prideluje tak, ze pokud ji zrovna ma jeho oblibena mala sestricka, maji ostatni smulu tak dlouho, dokud ji sestricka sama nepolozi").

OC

Odpovědět na příspěvek

RE: Malinko bych nesouhlasil...

Autor: Robert Černý Muž

Založeno: 13.08.2001, 11:11

Dobrý den Ondřeji,
abych řekl pravdu, chtěl bych se této diskusi vyhnout. Článek je napsaný tak, aby byl pochopitelný pro všechny a to byl jeho účel. Já osobně jsem přesvědčen, že preemptivní multitasking _JE_ lepší než kooperativní. Domnívám se však, že i ta druhá verze má své místo. Implementace priorit je dost komplikovaná záležitost a sám víte, kam to vedlo v MacOS X 10.0.x, když nebyla žádná slušná možnost programu ji přidělit.

Odpovědět na příspěvek

RE: Malinko bych nesouhlasil...

Autor: Tomas Muž

Založeno: 19.10.2001, 10:52

Dobry den,
Mam prosbu nevite nekdo jak se nastuvuje sitove pripojeni pro MAC OS, delam to totiz prvne.

Predem dekuji za odpovedi Tomas

Odpovědět na příspěvek

RE: RE: Malinko bych nesouhlasil...

Autor: Robert Černý Muž

Založeno: 19.10.2001, 11:11

Tomasi, je mi lito, ale na vas dotaz se odpovedet neda, protoze se na nic neptate. V cem je presne problem?

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

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

Uživatelské jméno:

Heslo: