Teaching - Sistemas Operacionais - 2019/II


Cronograma de Aulas e Conteúdo Programático
Sistemas Operacionais - 2019/II

Aulas as Quintas-Feiras a partir das 19h10
Metodologia
Cronograma Ementa Objetivos Contexto Conteúdo Programático Metodologia Avaliação Bibliografia
Cronograma
Data da Aula Conteúdo Previsto Comentários
01-Ago Aula 1
Introdução aos Sistemas Operacionais
Revisão Arquiteturas Paralelas
08-Ago Aula 2
Introdução aos Sistemas Operacionais
Slides Aula 1
15-Ago Aula 3 Exemplos de Sistemas Operacionais
Referencia 1: arquivos
Referencia 2: strings
Referencia 3: estruturas
22-Ago Aula 4 Estrutura de Inicialização no Linux
29-Ago Aula 5 Código de referência
05-Set Aula 6 Gerenciamento de Processos
Algoritimos:
FCFS, SJF, SRTF, Round Robin, Priority scheduling, HRRN e LJF.
Material de Apoio
12-Set Aula 7 Gerenciamento de Processos no Linux
Trabalho de Aula
19-Set Trabalho em Aula
26-Set Aula 8
Fork/Socks
Referências
Slides Aula Socks
Howto socks
Howto fork [1]
Howto fork [2]
03-Out Aula 9 Gerenciamento de Memória
10-Out Aula 10 Gerenciamento de Memória
17-Out Aula 11 Gerenciamento de Memória no Linux
24-Out Aula 12 Gerenciamento de Dispositivos de E/S
31-Out Aula 13 Gerenciamento de Dispositivos de E/S
07-Nov Aula 14 Sistemas de Arquivos
14-Nov Aula 15 DOJO!
21-Nov Aula 16 Trabalho de Aula
28-Nov Apresentação do Trabalho Final Trabalho de Final de Implementacão
05-Dez Trabalho em Aula. Gerenciamento de memória.
Enunciado do Trabalho
12-Dez exame! EXAME Toda a matéria!
Ementa
Apresentação da organização básica de sistemas operacionais. Estudo da evolução da estrutura e funcionamento dos sistemas operacionais. Introdução e exploração do conceito de algoritmos de escalonamento e de mecanismos de sincronização entre processos que compartilham memória. Desenvolvimento de algoritmos e construção de implementações de programas concorrentes. Análise e discussão de problemas relacionados à deadlocks, à comunicação entre processos, ao gerenciamento de memória, ao gerenciamento de entrada e saída e ao gerenciamento de arquivos.
Objetivos
    O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:
  • 1. Compreender a importância dos sistemas operacionais para o controle e aproveitamento dos recursos do computador;
  • 2. Conhecer os principais componentes de um sistema operacional;
  • 3. Compreender a complexidade dos algoritmos e técnicas utilizados em um sistema operacional;
  • 4. Aplicar algoritmos e técnicas levando em consideração o ambiente onde o sistema operacional é utilizado;
  • 5. Resolver problemas utilizando programação concorrente e mecanismos de exclusão mútua e de sincronização;
  • 6. Conhecer os diversos tipos de sistemas operacionais e suas características.
Contexto
A disciplina de Sistemas Operacionais faz parte da formação básica do curso e tem a finalidade de agregar informações aos conhecimentos fundamentais do aluno em relação ao funcionamento do software responsável pelo controle do computador e a execução de sistemas aplicativos. Ao concluir com êxito esta disciplina, o aluno estará reforçando os conhecimentos que o habilitam a ser membro de equipes de desenvolvimento, bem como de reconhecer as melhores arquiteturas de software e configurações de equipamento para cada aplicação desejada.
Conteúdo Programático
N°. DA UNIDADE: 01
CONTEÚDO: Introdução ao estudo de sistemas operacionais
1.1. Evolução histórica
1.2. Estrutura básica de sistemas operacionais
1.3. Serviços dos sistemas operacionais
1.4. Chamadas de sistema
1.5. Exemplos reais de sistemas operacionais

Nº. DA UNIDADE: 02
CONTEÚDO: Gerência do Processador
2.1. Conceito de processo: estado de processos, tipos de processos
2.2. Conceito de Escalonamento de processos
2.3. Algoritmos de escalonamento

Nº. DA UNIDADE: 03
CONTEÚDO: Programação concorrente
3.1. Programas com diversas threads
3.2. Comunicação e sincronização de processos
3.3. Primitivas de sincronização
3.4. Problemas clássicos

Nº. DA UNIDADE: 04
CONTEÚDO: Deadlock
4.1. Conceitos básicos
4.2. Prevenção
4.3. Detecção e recuperação

Nº. DA UNIDADE: 05
CONTEÚDO: Gerência de Memória
5.1. Políticas básicas
5.1.1. Partições fixas
5.1.2. Partições variáveis
5.2. Memória virtual
5.2.1. Paginação
5.2.2. Segmentação
5.3. Sistemas de memória não-volátil

Nº. DA UNIDADE: 06
CONTEÚDO: Gerência de arquivos
6.1. Arquivos
6.2. Diretórios
6.3. Implementação de sistemas de arquivos
6.4. Proteção
6.5. Segurança

N°. DA UNIDADE: 07
CONTEÚDO: Gerência de entrada e saída
7.1. Dispositivos de entrada e saída
7.2. Controladores dos dispositivos
7.3. Drivers dos dispositivos

Metodologia
Aulas expositivas, com o uso de datashow; aulas práticas no laboratório para demonstração de exemplos práticos; realização de exercícios teórico e práticos; trabalhos práticos extraclasse; avaliações escritas.
Avaliação
Trabalho 1 - T1: código + apresentação (obrigatoriamente em duplas).
Trabalho 2 – T2: implementação (pode ser feito em duplas).
Prova 1 – P1: individual.
NF = ((T1*20) + (T2*20) + (P1*60))/100
Bibliografia
Básica:
  • TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementação. 2.ed. Porto Alegre, RS: Bookman, 2000. 759 p. ISBN 9788573075304.
  • TANENBAUM, Andrew S. Sistemas operacionais modernos. 3.ed. São Paulo: Pearson Prentice Hall, 2010. 653 p. ISBN 9798576052371.
  • SILBERSCHATZ, Abraham. Fundamentos de sistemas operacionais. 9. Rio de Janeiro LTC 2015 1 recurso online ISBN 978-85-216-3001-2.
Complementar:
  • FLYNN, Ida M.; MCHOES, Ann Mclver. Introdução aos Sistemas Operacionais. São Paulo, SP: Thomson, 2002. 434 p. ISBN 9798522102746.
  • MACHADO, Francis Berenger. Fundamentos de sistemas operacionais. Rio de Janeiro LTC 2011 1 recurso online ISBN 978-85-216-2081-5.
  • MACHADO, Francis Berenger. Arquitetura de sistemas operacionais. 5. Rio de Janeiro LTC 2013 1 recurso online ISBN 978-85-216-2288-8.
  • BROOKSHEAR, J. Glenn. Ciência da computação: uma visão abrangente. 5.ed. Porto Alegre: Bookman, 2001. 499 p. ISBN 9788573075373.
  • TANENBAUM, Andrew S. Distributed operating systems. New Jersey: Prentice Hall, 1995. 614 p. ISBN 9780132199087.
  • DEITEL, Harvey M. An introduction to operating systems. 2.ed. Reading: Addison-Wesley, 1990. 853 p. ISBN 9780201180381.
  • STALLINGS, William. Operating systems: internals and design principles. 4.ed. New Jersey: Prentice-Hall, 2001. 779 p. ISBN 9780130319999.
  • GUIMARAES, Celio Cardoso. Princípios de sistemas operacionais. 5.ed. Rio de Janeiro: Campus, 1986. 222 p. ISBN 8570012942.
Conteúdo Adicional

Recent Posts

Installing MPI on Ubuntu
19. Sep. 2013 Instalar o MPI no Ubuntu é fácil. Basta rodar o seguinte comando: sudo apt-get install libcr-dev mpich2 mpich2-doc...
Installing CUDA 5.0 on Kubuntu 11.10
25. Jan. 2013 A instalação do novo pacote da NVIDIA para o CUDA5.0 no Kubuntu (ou Ubuntu) 11.10 é fácil, basta atentar às seguintes observações...
nbody simulations
19. Nov. 2011 Here we have some very basic simulations I made using the C code I developed...

Contact

Filipo Novo Mór
PPGCC - PUCRS
Av. Ipiranga, 6681
Porto Alegre – RS – Brazil
CEP 90619-900
Phone +55 51 3320.3500
filipo.mor at gmail.com