Sistema Operacional Conjunto de programas que inicializam o hardware do computador; Fornece rotinas básicas para o controle de dispositivos; Fornece gerência, escalonamento e interação de tarefas; Mantém a integridade do sistema; Sistema operacional não são só os sistemas para desktop; Ex: Simples Sistema de controle de segurança Armazenado na ROM Ao ligar, reajustaria e testaria os sensores de hardware e alarmes, e então ativar uma rotina de monitoramento ininterrupto de todos os sensores introduzidos;
Sistema Operacional Ex: Complexo Computador multiusuário com vários terminais Tem que administrar todos os pedidos de usuários e assegurar que eles não conflitem entre si. Tem que gerenciar dispositivos que são seriais por natureza (impressora) entre todos os usuários que pedem esse tipo de serviço. O sistema poderia ser armazenado em disco, e partes dele serem carregados na memória (RAM) quando necessário. Alguns utilitários são necessários: Administração de Arquivos e Documentos; Desenvolvimento de Programas; Comunicação entre usuários e com outros computadores; Gerenciamento de pedidos de usuários para programas, espaço de armazenamento e prioridade Necessidade de uma interface que aceita, interpreta e então executa comandos ou programas do usuário. (Ex: SHELL)
Sistema Operacional: Partes Sistema complexo; Contém MILHÕES de linhas de instruções escritas por programadores; Para facilitar a escrita, são construído em módulos; Cada módulo cuida de uma função; Módulos comuns entre grandes sistemas operacionais: Núcleo (Kernel); Gerenciador de processos; Escalonador; Gerenciador de arquivos.
Sistema Operacional: O núcleo Chaveamento entre programas Controle e programação de dispositivos de hardware Gerenciamento de memória Gerenciamento de processos Escalonamento de tarefas Comunicação entre processos Processamento de exceções e de interrupção
Sistema Operacional: O núcleo (Para o exemplo Simples) Chaveamento entre programas Controle e programação de dispositivos de hardware Gerenciamento de memória Gerenciamento de processos Escalonamento de tarefas Comunicação entre processos Processamento de exceções e de interrupção
Sistema Operacional: O núcleo (Para o exemplo Complexo) Chaveamento entre programas Controle e programação de dispositivos de hardware Gerenciamento de memória Carregar programas de usuários armazenados em disco. A memória necessita ser pesquisada para localizar área livre para carregar o programa Gerenciamento de processos Escalonamento de tarefas Comunicação entre processos Processamento de exceções e de interrupção
Programando um computador Um programa é uma sequência de instruções ao computador; Um programa antes de ser executado deve ser transformado em um código executável no computador; No sistema operacional, apenas uma porção dos programas são carregados a cada instante. Os programas não carregados ficam em disco esperando o momento que sejam necessários para, então, serem carregados (Alguém sabe o motivo disso?). Ex: PowerPoint 1.5GB no Disco, 256MB de RAM mínimo. Em execução consome 29MB. (PROCESSOS!)
Processos Um processo é uma porção de uma programa em alguma fase de execução; Um programa pode consistir de vários processos; Processos também são denominados tarefas; Cada processo com funcionamento próprio ou uma unidade (talvez se comunicando entre si periodicamente); Thread (fileira, linha) Uma thread é uma parte separada de um processo. Um processo pode consistir de várias threads cada uma das quais sendo executada separadamente. Sistema operacional necessita suportar multi-thread.
Programando um computador: #include <stdio.h> int main() { int c, n, f = 1; scanf("%d", &n); for (c = 1; c <= n; c++) f = f * c; printf("%d! = %d\n", n, f); return 0; } section.text global _start _start: mov ecx, 8 mov eax, 1 mov edx, 0 L: mul ecx dec ecx jne L mov eax, 1 mov ebx, 0 int 80h