Sistemas Operacionais
Total Page:16
File Type:pdf, Size:1020Kb
Sistemas Operacionais Sistema Operacional é um programa que gerencia os dispositivos (Placa de vídeo, som, modem, teclado, cdrom, mouse, etc) e arquivos (aplicativos, textos, figuras, etc) da maquina(computador), como, por exemplo, o Windows e o Linux, ele, também, é quem traduz o que o usuário quer fazer para a linguagem que o computador entende, números binários( 0 "zeros"e 1 "uns"). História Pode parecer, atualmente, difícil de imaginar um computador monotarefa que apenas permita utilizar uma aplicação mas, de fato, houve um percurso histórico notável até se atingir o nível atual de paralelização de processos. Com efeito, os primeiros computadores apenas permitiam executar uma única tarefa de cada vez. O DOS é um excelente exemplo disso, já que foi um dos primeiros sistemas operativos para computadores pessoais. O passo seguinte para a multitarefa foi a criação dos TSR's (Terminate and Stay Resident), que eram pequenos programas que permaneciam em memória enquanto se executava outro programa, e que eram ativados mediante combinações de tecla. Ou seja, estando o utilizador a escrever um texto num processador de texto, por exemplo, podia chamar uma agenda pessoal para tirar notas mediante uma combinação de teclas (que dependia do programa usado). Assim, do ponto de vista do processador, o processo do processador de texto era bloqueado e passava-se o controlo para a agenda. Quando o utilizador terminasse, voltava-se ao processador. Ambos programas coexistiam, mas não podiam ser executados em simultâneo. O seguinte passo foi a emulação de multitarefa. Exemplos disto eram as primeiras versões de Windows, em que este corria sobre DOS (monotarefa), mas o núcleo do programa tratava de fazer a sua própria gestão dos processos. Curiosamente, se um processo bloqueasse o Windows, todas as aplicações teriam que ser terminadas pois eram todas dependentes. Posteriormente, surgiu uma das principais componentes dos SO atuais: o escalonador de processos, ou (em inglês) scheduler, que faria a gestão, qualificação e o gerenciamento de prioridade dos processos sem afetar o núcleo do sistema operativo. Ou seja, todas as tarefas kernel são críticas, e todo o tempo que sobrar é legado aos processos. Adivinha-se, portanto, a necessidade de estabilizar o kernel, por forma a minimizar o tempo de execução de tarefas internas. O escalonador de processos é uma componente muito polemica em termos de inovação e de aplicações. Dependendo das situações, um escalonador de processos deve gerir os seus processos por forma a diminuir a latência entre aplicações interativas, ou assegurar a coerência em termos de critérios no escalonamento: se uma tarefa não é crítica, então não devia estar a ser executada. Kernel Na informática o kernel (conhecido também como núcleo) é a parte fundamental de um sistema operacional. É o software responsável em facilitar acesso seguro ao hardware por programas diferentes. Como existem vários programas e o acesso do hardware é limitado, o núcleo também se encarrega de decidir qual programa poderá usar de um dispositivo de hardware especifico e durante quanto tempo este poderá ser usado (o que é conhecido como multiplexação). Necessariamente não se precisa de um núcleo para usar um computador. Os programas podem ser carregados e executados diretamente em um computador «vazio», sempre que seus autores queiram desenvolvê- los sem usar nenhuma abstração de hardware nem nenhuma ajuda do sistema operacional. Esta era a forma normal de se usar muitos dos primeiros computadores: para usar programas diferentes era preciso reiniciar e reconfigurar o computador cada vez. Com o tempo, se começou a deixar em memória (ainda entre distintas execuções) pequenos programas auxiliares, como o Carregador e o depurador, ou se carregavam apartir memoria_somente_de_leitura. A medida que foram se desenvolvendo, se converteram na base do que chegariam a ser os primeiros núcleos do sistema operacional. Existem quatro tipos principais de núcleos: -Os ''núcleos monolíticos'' facilitam abstrações do hardware subjacente realmente potentes e variadas. -Os ''micronúcleos'' (ou microkernel) proporcionam um pequeno conjunto de abstrações simples do hardware e usam as aplicações chamadas servidores para oferecer maior função. -Os ''híbridos'' (''micronúcleos modificados'') são muito parecidos com os micronúcleos puros, com a exceção de incluírem um código adicional no espaço do núcleo para que se execute com maior velocidade. -Os ''exonúcleos'' não facilitam nenhuma abstração, mas permitem o uso de bibliotecas que proporcionam maior função graças ao acesso direto ou quase direto ao hardware. Exonúcleos Os exonúcleos, também conhecidos como sistemas operacionais verticalmente estruturados, representam uma aproximação radicalmente nova ao desenvolvimento de sistemas operacionais. A idéia é permitir que o desenvolvedor tome todas as decisões relativas ao rendimento do hardware. Os exonúcleos são extremamente pequenos, já que sua função se limita à proteção e à multiplexação dos recursos. Os desenvolvimentos de núcleos clássicos (tanto o monolítico como o micronúcleo) abstraem o hardware, escondendo os recursos através da abstração do hardware, ou detrás dos controladores do dispositivo. Nos sistemas clássicos, usando a memória física, ninguém poderá afirmar qual é sua real localização, por exemplo. A finalidade de um exonúcleo é permitir uma aplicação que solicite uma região específica da memória, simplesmente assegurar que os recursos pedidos estão disponíveis e que o programa tem direito a acessá-los. Pelo fato do exonúcleo proporcionar uma interface de baixo nível ao hardware, carecendo de todas as funções de alto nível dos outros sistemas operacionais, ele é complementado por uma «biblioteca de sistema operacional». Esta biblioteca se comunica com o exonúcleo subjacente e facilita aos programadores de aplicativos com funções que são comuns em outros sistemas operacionais. Algumas das implicações teóricas de um sistema exonúcleo é que é possível ter distintos tipos de sistemas operacionais (p.e. Windows, Unix) sendo executado em apenas um exonúcleo e que os desenvolvedores podem escolher prescindir ou incrementar funções por motivos de rendimento. Tipos de multitarefa Existem dois tipos de sistemas operativos de multitarefa: Antecipação e Cooperação. -Antecipação Os sistemas operativos com esta qualidade de multitarefa esforçam-se por conseguir uma "democratização" dentro do processador. Os seus kernels mantêm em memória um registro de todos os processos em execução (esse registro chama-se árvore de processos, em virtude de os processos estarem ligados uns aos outros como os ramos de uma árvore). Entre outros atributos acerca de cada processo, essa "árvore" inclui uma informação de prioridade (chamada "nice" nos sistemas Unix- like e simplesmente "Priority" nos Windows NT), com a qual o kernel calcula o tempo de CPU que deve dar a cada processo. Quando esse tempo acaba, o kernel tira o controlo da CPU ao processo e dá-o ao processo que vem a seguir na fila. Quando a fila acaba, o kernel volta a dar o controlo da CPU ao primeiro processo, fechando assim o ciclo. Exemplos: Unix Linux BSD Mac OS X Windows NT4 e posteriores Hurd ReactOS -Cooperação A multitarefa de cooperação pouco difere do outro sistema, a única diferença é que nesta não há controlo sobre o tempo de CPU que cada processo consome: é dado o controlo da CPU ao processo, e ele só o devolve quando estiver pronto... Quase nenhum sistema operativo moderno utiliza este modelo de multiprocessamento, atualmente é mais utilizado o sistema descrito acima pois assim consegue-se evitar que um processo que bloqueie leve o sistema todo consigo, incluindo eventuais documentos não guardados. Os sistemas operativos com este modelo de multitarefa são freqüentemente chamados sistemas operativos com alternância de tarefas (em inglês, task-switching). Alguns Sistemas Operacionais O que muitos não sabem é q existem outros Sistemas Operacionais além do Windows e Linux, assim como: Tron Ken Sakamura, até agora desconhecido engenheiro japonês desenvolveu um sistema operacional mais adotado do que o Windows, o Tron que está presente em quatro bilhões de equipamentos. Tron é usado para garantir o funcionamento de uma gama enorme de aparelhos (de câmeras digitais a motores de automóveis) da mesma forma como o Windows controla os computadores. O que coloca Tron e Windows - e as fortunas de Sakamura e Gates - em lados completamente diferentes é que, ao contrário do Windows, que precisa ser comprado da Microsoft, o Tron é gratuito. Se o desenvolvedor japonês tivesse cobrado um centavo por cada uso do Tron, ele seria bilionário, possivelmente comparado ao fundador da Microsoft, que tem sua fortuna estimada em US$ 43 bilhões, segundo a revista Forbes. Storm Software feito por dois adolescentes franceses. É um software bem simples, se compararmos com os mais atuais, e com idéias bem simples também, mas consistente. O usuário não precisa conhecer nada, exceto instalação de programas. Ele roda junto com o Windows, mas necessita do DOS; por isso, seu objetivo é simplesmente dar uma nova interface para seu computador. Não é necessário particionar o disco, pois só ocupa 10Mb, mas não há nada sobre suporte a programas. Nenhuma palavra, também, sobre a licença. OpenVMS O OpenVMS é um sistema operacional multiprogramável e multiusuário utilizado em ambientes de processamento comercial e científico que suporta diversos estilos de operação, incluindo tempo compartilhado, tempo real e até mesmo processamento de transações on- line. O sistema