Sistema Operacional Sistema operacional é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), fornecendo uma interface entre o computador e o usuário. 1 Sistema Operacional 2 Sistema Operacional Os sistemas operacionais mais utilizados no Mundo 3 Gerenciamento de processos O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea. São utilizados algoritmos para determinar qual processo será executado em determinado momento e por quanto tempo. 4 Gerenciamento de processos • • • • • Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são: sinais; pipes; memória compartilhada; soquetes (sockets); trocas de mensagens. 5 Gerenciamento de memória O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam. 6 Gerenciamento de memória Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas: • Assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação • • Prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença; Possibilitar que uma aplicação utilize mais memória do que a fisicamente existente. 7 Interface de Terminal A interface de terminal, também chamada "CLI" (Command Line Interface) funciona exclusivamente com teclado e mouse. Os comandos são digitados a partir de um prompt e são interpretados por um interpretador de comandos, conhecidos também por shells, bastante comuns em sistemas padrão 8 Interface textual Assim como a interface de terminal, a interface textual também é baseada em texto, porém também tem à disposição um ambiente de trabalho composto por menus, janelas e botões. Esse tipo de interface tinha um uso difundido em aplicações baseadas no MS-DOS, que, inclusive, nas versões mais recentes contava com um gerenciador de programas e arquivos baseados nesse tipo de interface (o DOS Shell). Atualmente essa interface é muito rara, praticamente restrita a sistemas implementados na década de 1980 e início da década de 1990. Esse ambiente ainda prescinde do uso mouse 9 Interface gráfica Nesse tipo de interface, também chamada GUI (Graphic User Interface) além de menus, janelas e botões também existem figuras, tanto vetoriais quanto fotografias. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho, ou então usando toques e gestos em touchscreens. 10 Interface de voz Interfaces de voz, ou VUI (Voice User Interface), são aquelas em que o usuário interage com o sistema por meio de comandos sonoros. Sendo de desenvolvimento relativamente recente, tem sua aplicação em dispositivos adaptados para cegos e têm aparecido também em smartphones e tablets recentemente. 11 Classificações Em relação arquitetura • Núcleo monolítico ou monobloco: o núcleo consiste em um único processo executando numa memória protegida (espaço de núcleo) executando as principais funções. Ex.: MAC OS X, OS/2, Windows, Linux, FreeBSD. • Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS. • Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é feito de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. 12 Classificações Em relação arquitetura • Monousuário: apenas um usuário por vez (apesar de poder suportar recursos como troca de usuário). Ex.: Windows. Esse também pode ser acessado por terminais e conexão remota. • Multiusuário: vários usuários usam o computador ao mesmo tempo, seja por diversos terminais, seja por conexão remota como o SSH. Ex.: Linux, Unix. 13 Exemplos de sistemas operacionais ativos Para desktop/servidores • Windows - Microsoft • OS X - Apple Inc. • Linux - Sistemas baseados em Linux Para dispositivos móveis (tablets e smartphones) • Android é um sistema operacional baseado no núcleo do Linux para dispositivos móveis, desenvolvido pela Open Handset Alliance, liderada pelo Google e outras empresas. • Windows Phone é um sistema operacional móvel, desenvolvido pela Microsoft, sucessor da plataforma Windows Mobile, 14 Exemplos de sistemas operacionais ativos Para dispositivos móveis (tablets e smartphones) • iOS (antes chamado de iPhone OS) é um sistema operacional móvel da Apple Inc. desenvolvido originalmente para o iPhone, também é usado em iPod touch, iPad e Apple TV. 15 Atividades 1. 2. 3. 4. 5. 6. 7. 8. Defina com o que sistema operacional? Atualmente quais sistema operacionais são mais usados para Desktop? Qual a diferença entre as seguintes Interfaces Terminal, textual e gráfica? Defina o que é gerenciamento de processos? Qual as três funções que a memória virtual possui? Comente três classificações, em relação arquitetura. Cite dois sistemas operacionais Para dispositivos móveis. Em relação arquitetura quem executa as principais funções? 16