Sistemas Operacionais Aula 01 - Introdução Prof. Maxwell Anderson www.maxwellanderson.com.br
Capítulo 1: Introdução O que é um sistema operacional? Componentes de um sistema operacional O que faz parte de um sistema operacional? Sistema operacional como máquina virtual (estendida) Sistema operacional como gerenciador de recursos
O que é um sistema operacional? Um programa que atua como intermediário entre o usuário e o hardware de um computador. Propósitos de um sistema operacional: Executar programas do usuário; Tornar o uso de um sistema conveniente; Usar o hardware de um computador de uma maneira eficiente
Hardware Programas de sistema e aplicativos Componentes de um sistema Um sistema operacional é um componente importante de um sistema. Um sistema pode ser dividido em três camadas importantes: Hardware Sistema operacional Programas de sistema e aplicativos Sistema bancário Compiladores Navegador WEB Editores Sistema operacional Linguagem de máquina Jogos Interpretador de comandos Microarquitetura Dispositivos físicos
Componentes de um sistema Hardware Fornece os recursos básicos para computação É composto por: Unidade Central de Processamento (CPU) Memória Dispositivos de entrada e saída (I/O Input/Output) Possui os níveis: Linguagem de máquina Microarquitetura Dispositivos físicos
Componentes de um sistema Dispositivos físicos Chips de circuitos integrados Fontes de alimentação Tubos de raios catódicos ou telas LCD Fios Linguagem de máquina Microarquitetura Dispositivos físicos
Componentes de um sistema Microarquitetura Registradores Caminho de dados Microarquitetura Dispositivos físicos
Componentes de um sistema Linguagem de máquina Conjunto de instruções em nível de linguagem de máquina Também chamado de nível ISA - Instruction Set Architecture Uma CPU possui cerca de 50 a 300 instruções O conjunto de instruções controlam tudo o que a máquina pode fazer Linguagem de máquina Microarquitetura
Componentes de um sistema Linguagem de máquina instruções típicas LOAD, STORE - realizam o movimento de dados e instruções entre memória e registradores MOVE - realizam cópia de valores entre registros ADD, SUB, MULT,... - realizam operações aritméticas AND, OR, XOR,... - realizam operações lógicas EQ, NEQ, LEQ,... - realizam operações de comparação GOTO - operação de desvio Linguagem de máquina
Componentes de um sistema Linguagem de máquina exemplo: ; Este código soma 5 + 10 MOV AX, 5 MOV BX, 10 ADD AX, BX SUB AX, 1 HLT Abrir montador assembler
Componentes de um sistema Sistema operacional Controla e coordena o uso do hardware entre as várias aplicações que vários usuários utilizam. Fornece instruções mais simples. UNIX: fork Crie um novo processo exit Termine a execução open Crie um arquivo ou abra um arquivo existente close Feche um arquivo read Leia dados de um arquivo write Escreva dados em um arquivo Windows: CreateProcess() Crie um novo processo ExitProcess() Termine a execução CreateFile() Crie um arquivo ou abra um arquivo existente CloseHandle() Feche um arquivo ReadFile() Leia dados de um arquivo WriteFile() Escreva dados em um arquivo
Componentes de um sistema Sistema operacional exemplos de uso das instruções Fornece instruções mais simples import win32.winbase; import win32.windef; import win32.winuser; extern(windows) int WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, PSTR szcmdline, int icmdshow) { MessageBoxA(null, "Hello", "Hello World", MB_OK); return (0); } Mais exemplos com tutorial em http://www.winprog.org/tutorial/
Componentes de um sistema Sistema bancário Navegador WEB Jogos Compiladores Editores Interpretador de comandos Programas de sistema Compiladores, interpretadores: C/C++, Java, Perl etc. Gerenciadores de janelas: Explorer, X Editores: vi, edit, notepad etc. Interpretador de comandos ou shell: ms-dos, cygwin, bash, cmd etc. Programas aplicativos Sistemas em geral: Gerenciador Financeiro, MS Word, AutoCAD etc. Navegador WEB: Firefox, Internet Explorer, Chrome etc. Jogos.
O que faz parte de um S.O.? Sistema operacional Não existe uma definição universalmente aceita do que faz e do que não faz parte do sistema operacional. Um ponto de vista simples é aquele que diz que um S.O. é tudo aquilo que o fornecedor entrega para você. Silberschatz Uma definição comum é que o S.O. é um programa que sempre está sendo executado em um computador, chamado de núcleo ou kernel, todo o resto consistindo em programas aplicativos Silberschatz Essa parte que sempre está sendo executado em um computador é dito que o S.O. está sendo executado em modo supervisor ou modo núcleo. Tanenbaum
S.O. como máquina virtual Sistema operacional como máquina virtual pag 4 e 5 A arquitetura da maioria dos computadores em nível de linguagem de máquina é primitiva e de difícil programação, especialmente para I/O. Exemplo: I/O da unidade de discos flexíveis. Chip controlador NEC-PD765, possui 16 comandos. Os comandos mais básicos são o READ e o WRITE, cada um dos quais requerendo 13 parâmetros, acondicionados em 9 bytes. Tais parâmetros especificam o endereço do bloco a ser lido do disco, o número de setores por trilha, o modo de gravação no meio físico, o espaçamento entre setores, entre outras coisas. Quando a operação se completa, o chip controlador retorna ao processador, 23 campos de estado, acondicionados em 7 bytes. Como se isto não bastasse, o programador da unidade de disco flexível tem de se preocupar com o fato do motor do disco estar ligado ou desligado. Se o motor estiver desligado, ele precisa ser ligado antes que o dado possa ser lido ou gravado. O motor não pode permanecer ligado por muito tempo sob pena de danificar o disquete. [1]
S.O. como máquina virtual Sistema operacional como máquina virtual Exemplo em um nível mais baixo em Material de Exemplo Exemplos em um nível mais alto:
S.O. como máquina virtual Sistema operacional como máquina virtual O programa que esconde o verdadeiro hardware do usuário e apresenta-lhes um esquema simples de arquivos identificados que podem ser lidos ou escritos é o sistema operacional. Da mesma forma que o sistema operacional isola o usuário dos detalhes da operação do disco, ele também trata de uma série de outras questões tais como interrupções, os temporizadores, a gerência da memória e outras. Em cada caso, a abstração apresentada ao usuário do sistema operacional é mais simples e mais fácil de utilizar que o próprio hardware. [1] Neste aspecto, a função do sistema operacional é a de apresentar ao usuário uma máquina estendida ou máquina virtual equivalente ao hardware, porém muito mais simples de programar. [1]
S.O. como gerenciador de recursos Sistema operacional como gerenciador de recursos [1] pag 5 Imagine o que poderia acontecer se três processos, rodando em um dado computador, resolvessem imprimir suas saídas simultaneamente na mesma impressora. As três primeiras linhas da listagem poderiam ser do processo 1, as seguintes do processo 2 e assim por diante, até que os três terminassem a impressão. Fica claro que tal situação não é admissível em nenhum sistema que se preze. O sistema operacional tem por função colocar ordem neste caos potencial, armazenando em disco todas as saídas destinadas à impressora, durante a execução dos processos. No caso do computador possuir múltiplos usuários, a necessidade de gerência e proteção da memória, dos dispositivos de entrada/saída e dos demais recursos do sistema fica ainda mais aparente. Pelo exposto acima, esta outra visão da função de um sistema operacional mostra que sua tarefa principal é a de gerenciar os usuários de cada um dos recursos da máquina, contabilizando o tempo de uso de cada um e garantindo o acesso ordenado de usuários a recursos através da mediação dos conflitos entre as requisições dos diversos processos usuários do sistema.
Referências Bibiográficas [1] Tanenbaum, Andrew S. Sistemas Operacionais Modernos 2. ed. Prentice Hall ( Pearson ), 2003 [2] Silberschatz, Abraham. Sistemas Operacionais. Editora CAMPUS, 2001.