Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com
Sistemas Operacionais Carga horária total: 136 h/a Máximo de faltas: 34 h/a ou 8,5 dias. Quantidade de notas: 3 (formadas por avaliações e trabalhos) Software Utilizados: Linux e Minix, CodeBlocks e Bibliotecas.
Ementa Conceitos básicos. Gerência e escalonamento de processos: l Concorrência, sincronização de processos e deadlocks. Gerência de memória: l Alocação dinâmica de memória, paginação, segmentação e memória virtual. Sistemas de arquivos. Gerência de E/S. Proteção e segurança. Estudo de casos. Conceitos de Sistemas Operacionais Distribuídos.
Sistemas Operacionais Bibliografia indicada:
Considerações Disciplina extensa e complexa; Alta carga teórica; Implementação prática requer bom nível de conhecimento em linguagem C (principalmente modularização); Sistemas Operacionais, Redes de Computadores e Banco de Dados, são disciplinas com conceitos afins; Não vamos formatar, remover vírus, instalar componentes ou fazer manutenção no Windows. (se tudo correr bem, nem Windows iremos usar). Realizada às sextas-feiras :(
Sistemas Operacionais O sistema operacional é a peça mais básica de software e opera em modo núcleo (Kernel mode), tendo neste acesso completo a todo o hardware e podendo executar qualquer instrução.
Sistemas Operacionais Sistemas Operacionais tendem a ser grandes, complexo e ter vida longa, passando apenas por evoluções. l Windows 95/98/ME l Windows NT/2000/XP/Vista/Seven
Funções do Sistema Operacional Ocultar o hardware e oferecer aos programas abstrações precisas, claras, elegantes e coerentes com as quais trabalhar. É uma maquina estendida: Oculta detalhes complicados que têm que ser executados; Apresenta uma forma mais simples de utilizar recursos. É um gerenciador de recursos: Organiza tempo de execução dos programas; Organiza o espaço de execução dos programas;
Funções do Sistema Operacional Gerenciadores de recursos Prioriza, organiza e resolve conflitos para acesso ao hardware. Processos(ou mesmo usuários)podem competir por: Tempo de processamento; Memória; Entrada e saída(discos, conexões de rede,etc.); Ou podem querer acesso exclusivo a recursos: Impressora; Digitalizador; Arquivo obtendo parte de um banco de dados;
Funções do Sistema Operacional Gerenciadores de recursos Prioriza, organiza e resolve conflitos para acesso ao hardware. Processos(ou mesmo usuários)podem competir por: Tempo de processamento; Memória; Entrada e saída(discos, conexões de rede,etc.); Ou podem querer acesso exclusivo a recursos: Impressora; Digitalizador; Arquivo obtendo parte de um banco de dados;
Problemas que os Sistemas Operacionais devem tratar Sistema Operacional precisa lidar com situações indesejadas. Inanição (starvation); Travas (deadlock); Degradação de desempenho(um processo causando os demais a serem muito lentos); Insuficiência de recursos; Ao mesmo tempo que gerencia o uso compartilhado dos recursos: Desempenho global versus distribuição justa; Priorização; Quotas;
Não faz parte do sistema operacional Geralmente os Sistemas Operacionais vêm acompanhados de aplicativos e interfaces para que o usuário execute tarefas. Editores de texto; Reprodutores de imagens; Utilitários de backup; Interface de comandos(shell). GUI Graphic User Interface O núcleo do SO é o kernel. Em geral, ele é protegido dos demais aplicativos e os controla.
Faz parte do sistema Operacional Funções básicas que um SO provê a seus processos e usuários: Agendamento de processos; Gerenciamento de memória; Gerenciamento de armazenamento; Comunicação entre processos; Proteção; Gerenciamento de dispositivos. Em alguns SO mais simples tais funcionalidades estão fora do kernel ou nem todas são implementadas.
Chamadas de sistema (System Calls) Variam de acordo com cada SO, mas mantém os mesmos conceitos básicos; De certa forma, fazer uma chamada de sistema é como realizar uma chamada de rotina, só que as chamadas de sistema fazem entrar em modo núcleo e as chamadas de rotina não. As chamadas de sistema podem ser: Para gerenciamento de processos; Para gerenciamento de arquivos; Para gerenciamento do sistema de diretórios e arquivos; Diversas;
Chamada de sistema read() Possui 3 argumentos (parâmetros): Especifica o arquivo; Ponteiro para buffer; Quantidade de bytes a serem lidos; contador = read(arquivo, buffer, nbytes); l contador deve receber valor igual a nbytes ou menor, caso o arquivo possua tamanho menor do que a variável solicitou. l Caso ocorra algum erro o valor em contador será -1; l Os programas devem sempre verificar os resultados de uma chamada de sistema para saber se ocorreu um erro.
Chamada de sistema (system call) 11 Passos de uma chamada de sistema