4. O Macintosh Operating System (Mac OS) é a denominação do sistema operacional padrão dos computadores Macintosh produzidos pela Apple. Sua evolução ocorreu até a versão Mac OS X. A primeira versão foi lançada em 1984. Até antes da versão 7.6, era chamado apenas de System (ex.: System 4, System 7), da versão 7.6 em diante passou a ser chamado de Mac OS. História do Mac 4
5. Foi o primeiro sistema gráfico amplamente usado em computadores a usar ícones para representar os itens do computador, como programas, pastas e documentos. Também foi pioneiro na disseminação do conceito de Desktop, com uma Área de Trabalho com ícones de documentos, pastas e uma lixeira, em analogia ao ambiente de escritório. De início as pastas eram criadas renomeando uma "Pasta Vazia" que estava sempre na raiz do disco. A partir do System 2.0 o sistema foi modificado, com a inclusão do comando "Nova Pasta'" no menu Arquivo do Finder(programa padrão de gerenciamento de arquivos do Mac OS editados pela Apple). Historia do Mac 5
6. O lançamento do Mac OS X foi um marco para o sistema operacional. Em sua décima versão, o sistema foi remodelado como um todo, inclusive o kernel (Mac Os utilizavam KernelMonolítico, e mais tarde micro-kernel, Mac Os X Kernel híbrido), que passou a ser baseado no do Unix BSD. Historia do Mac 6
10. HFS (Hierarchical File System), é um sistema de arquivos desenvolvido pela Apple Computer para uso em computadores rodando o Mac OS. Originalmente projetado para uso em floppy e discos rígidos, ele também pode ser encontrado em suporte read-only como CD-ROMs. HFS+ ou HFS Plus UFS (Unix file system) NFS (Network File System) Sistemas de Arquivos 10
12. Foi criado a partir do S.O. 4.4BSD e do MicrokernelMach 3.0, é considerado um kernel híbrido por Possuir diferentes partes (monolítico e microkernel) interagindo na utilização do sistema. Em termos de estrutura é considerado um kernel em camadas. Gerência de Processos 12
13. Um sistema operacional em camadas apresenta diversas vantagens sobre um sistema monolitico: •Interface padronizada •Extensibilidade •Flexibilidade no suporte de novos sistemas •Portabilidade •Confiabilidade Um Sistema baseado em camadas impõe uma interface padronizada para requisições feitas por um processo. Os processos não precisam distinguir entre espaço de usuário ou espaço do kernel, pois todos os serviços utilizam troca de mensagens para comunicação. Gerência de Processos 13
15. Escalonador de Processos (machscheduling) É derivado do OSFMK, com várias modificações para o tratamento de interatividade. Escalona processos baseado numa variante do algoritmo de multiplas filas com realimentação, porém divide as filas de prioridade em 4 grupos de processos: Normal (Prioridade das aplicações normais do usuário) Sistema (Prioridade das aplicações do sistema) > Normal Kernel (Reservada para threads em espaço de kernel) > Sistema Tempo Real (Threads nas quais a prioridade está baseada na necessidade de reservar uma fração pré-definida de ciclos de clock, independetem de outras aplicações sendo executadas no sistema. Gerência de Processos 15
16. Suporta Tempo Compartilhado e Prioridade Fixa Threads de prioridade Tempo Real normalmente são de prioridade fixa. Threads de prioridade fixa executam durante um tempo pré-determinado ou até que uma thread de prioridade maior queira executar. Então ela é colocada no fim da fila da prioridade normal. •Uma thread de Tempo-Real pode dizer ao agendador que ela precisa rodar por 3000 ciclos dos próximos 7000, além de dizer se precisam ser contínuos ou não. Se uma thread de tempo real não respeita o tempo de processamento indicado ela é penalizada e pode até ser rebaixada a uma prioridade normal. Threads que usam muito tempo do processador usam uma prioridade baixa para evitar que threads de prioridade alta monopolizem o processador. As de prioridade alta devem executar rapidamente e liberar o recurso. Comunicação por : Filas de mensagens, semáforos, notificações, lock sets e RPC Gerência de Processos 16
18. Cada processo tem seu próprio conjunto (32 bits ou 64 bits) de espaço de endereço virtual. Para processos de 32 bits, cada processo tem um espaço que pode endereçar dinamicamente chegando ao limite de 4GB. Para processos de 64 bits, pode endereçar até o limite de 18 exabytes. Subsistema VM (Virtual Memory) O subsistema VM do kernelmach consiste do módulo machine-dependentphisicalmap (pmap) e outros módulos independentes para gerenciar a estrutura de dados, tais como os Virtual AddressSpaceMaps (VM maps). Gerência de Memória 18
19. Paginadores Internos Kernel inclui 3 paginadores internos, a saber: O paginador padrão (anônimo), O paginador para Dispositivos O paginador para vnode(pode mapear um processo para um objeto em qualquer tipo de sistema de arquivo. Desta forma, uma chamada de sistema não precisa entender qual objeto esta sendo manipulado, somente como fazer uma chamada orientada à objetos usando a interface vnode) O Kerneltratam operações de entrada e saída sobre regiões da memória. Os paginadores se comunicam com o subsistema Mach-VM utilizando interfaces UPL e derivadas do paginador do Mach. Gerência de Memória 19
20. Wired Memory Também chamado de memória residente, armazena código do kernel e estruturas de dados que não podem ser paginadas para disco. Aplicações, frameworks e outros softwares da camada do usuário não podem ser alocados na Wired Memory, no entanto podem afetar a quantidade de Wired memory existente num dado momento. As entidades do kernel abaixo utilizam wired memory: VM Objects I/O Buffer Cache Condutores Gerência de Memória 20
21. UBC (Unified Buffer Cache) Constitui um conjunto de páginas para armazenar (caching) o conteúdo dos arquivos e a porção anônima do espaço de endereços. O exemplo mais comum é a memória alocada dinameicamente Gerência de Memória 21
22. Ao contrário da maioria dos sistemas Unix o Mac OS X não usa uma pré-partição Swap para memória virtual. Em vez disto ele usa todo o espaço disponível na máquina da partição de boot. Gerência de Memória 22
23. Versões do Mac OS X Versões do Mac Os Mac OS System 6(1988) Mac OS System 7(1997) Mac OS X Public Beta (2000) Mac OS X v10.0 "Cheetah" (24 de março de 2001 Mac OS X v10.1 "Puma" (25 de setembro de 2001 Mac OS X v10.2 "Jaguar" (24 de agosto de 2002) Mac OS X v10.3 "Panther" (24 de outubro de 2003) Mac OS X v10.4 "Tiger" (29 de abril de 2005) Mac OS X v10.5 "Leopard" (26 de outubro de 2007) Mac OS X v10.6 "Snow Leopard" A Versão "Snow Leopard" terá lançamento em 2009, por Steve Jobs (na WWDC 08) como sucessora do Mac OS X v10.5 "Leopard" 23