|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
Observações: |
EMENTA
História dos Sistemas Operacionais, Processos e Threads, Gerenciamento de Memória, Sistema de Entrada e Saída, Sistema de Arquivo e Estudo comparativo entre Sistemas Operacionais existentes.
JUSTIFICATIVA
O desenvolvimento de proficiência na resolução de problemas computacionais e desenvolvimento de software exige o conhecimento dos recursos providos pelas arquiteturas de hardware distintas, das interfaces de abstração para a disponibilização de tais recursos e dos modelos de gestão dos mesmos. Este curso visa prover aos alunos este conhecimento fundamental.
OBJETIVO
Objetivo Geral: |
Definir os conceitos básicos e avançados de sistemas operacionais, oferecendo ao aluno conhecimento abrangente sobre o tema. |
Objetivos Específicos: |
Capacitar os discentes a reconhecer as principais características existentes em sistemas operacionais, bem como ser capaz de escolher um sistema operacional adequado para determinados tipos de aplicações. |
PROGRAMA
1. Introdução
a. Definição e Características de um Sistema Operacional
b. Estrutura de um Sistema Operacional
i. Serviços do Sistema Operacional
ii. Chamadas de Sistemas
c. Projeto e Implementação do Sistema Operacional
i. Mecanismos e Políticas
ii. Implementação
iii. Estrutura do Sistema Operacional
1. Monolíticos
2. Camadas
3. Microkernels
4. Módulos
5. Máquinas virtuais
6. Cliente-sevidor
2. Gerência de processos
a. Conceito de Processos
b. Estados de um Processo
c. Bloco de Controle de Processos
d. Escalonamento de Processos
e. Troca de contexto
f. Criação de Processos
g. Comunicação entre Processos
h. Threads
i. Motivação para o uso de Threads
ii. Modelos de Múltiplas Threads
iii. Bibliotecas de Threads
iv. Posix Threads – Pthreads
v. Windows Threads
vi. Threads em Java
vii. Aspectos do uso de Threads
i. Escalonamento de processos
i. Ciclos de CPU e ES (Entrada e Saída)
ii. Conceitos de Preempção
iii. Algoritmos de Escalonamento
1. First Come, First Served – FCFS
2. Shortest Job First – SJF
3. Escalonamento por Prioridade
4. Round-Robin
5. Filas Multinível
iv. Escalonamento de Threads
v. Escalonamento em Múltiplos processadores
j. Programação concorrente
k. Sincronização de processos
i. Caracterização
ii. Seção Crítica
iii. Hardware de Sincronismo
iv. Semáforos
v. Monitores
vi. Problemas Clássicos de Sincronismo
l. Deadlock
i. Caracterização do Deadlock
ii. Grafo de Alocação de Recursos
iii. Métodos para Tratamento de Deadlocks
iv. Prevenção de Deadlocks
v. Detecção de Deadlock
vi. Recuperação do Deadlock
3. Gerência de memória
a. Carregamento absoluto e carregamento relocado
b. Alocação contígua
i. Partições fixas
ii. Partições variáveis
c. Alocação não-contígua
i. Paginação
ii. Segmentação
iii. Segmentação paginada
d. Memória virtual
i. Paginação por Demanda
ii. Algoritmos de substituição de página
iii. Trashing
4. Sistemas de arquivos
a. Arquivos e diretórios
b. Estruturação de arquivos
c. Segurança em sistemas de arquivos
d. Implementação de sistemas de arquivos
e. Alocação de espaço em disco
i. Alocação contígua
ii. Alocação encadeada
iii. Alocação indexada
f. Gerência de espaço livre em discos
g. Múltiplos sistemas de arquivos.
h. Sistemas de Arquivos de Rede
5. Gerência de entrada e saída
a. Controlador e driver de dispositivo
b. E/S programada
c. Interrupções
d. DMA (Direct Memory Access – Acesso Direto a Memória)
e. Organização de discos rígidos
f. Algoritmos de escalonamento de braço de disco
g. Sistemas RAID (Redundant Array of Independent Disks)
6. Estudos de Caso: Sistemas Operacionais de Propósito Específicos
a. Sistemas Operacionais de Tempo Real
b. Sistemas Operacionais Multimídia
c. Sistemas Operacionais Embarcados
7. Segurança em Sistemas Operacionais
METODOLOGIA
O curso será desenvolvido através de atividades síncronas e assíncronas:
No primeiro grupo, serão efetuadas exposições didáticas sucintas a respeito dos tópicos essenciais relativos aos conteúdos previstos da disciplina, bem como resolução de dúvidas que os discentes apresentem sobre os conteúdos constantes nos materiais de apoio a eles indicados.
No segundo grupo, os alunos deverão estudar os materiais de apoio definidos e indicados. Estes materiais serão apresentados nos mais variados formatos, livros, artigos, vídeos e trechos de códigos-fonte de softwares.
As atividades práticas ocorrerão nas atividades de análise de códigos de programas e na implementação dos projetos propostos. Elas não demandam equipamentos específicos, exceto aqueles que os alunos naturalmente utilizarão no acesso aos materiais e aulas oferecidos remotamente.
Cada semana de atividades contemplará uma hora-aula de atividade síncrona e cinco horas-aula de atividades assíncronas.
Informações de acordo com a Resolução nº 7/2020 do Conselho de Graduação:
Atividades síncronas: 7,5 horas
Horários das atividades síncronas: Sextas-feiras 10:40 as 11:30
Plataforma de T.I./softwares que serão utilizados:
Google Meet, Microsoft Teams
Atividades assíncronas: 37,5 horas
Plataforma de T.I. /softwares que serão utilizados:
Microsoft Teams, Moodle, Youtube, Sites na internet
Endereço web de localização dos arquivos
Moodle e Microsoft Teams acadêmico do professor da disciplina.
Livro:
Operating Systems: Three Easy Pieces
http://pages.cs.wisc.edu/~remzi/OSTEP/.
Guias e Materiais de Estudos:
CS4414: Operating Systems, University of Virginia - David Evans
http://rust-class.org/index.html.
CS 162: Operating Systems and System Programming, University of Berkeley - Sam Kumar
https://cs162.eecs.berkeley.edu/.
CS 140: Operating Systems, Stanford University - John Ousterhout
http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/index.php.
Operating System Engineering, MIT - Frans Kaashoek
Demais atividades letivas: 0 horas
Carga-horária prática: 0 horas
Como e onde os discentes terão acesso às referências bibliográficas:
Além dos materiais que se encontram na biblioteca da instituição, os alunos terão a opção de utilizar o livro texto Operating Systems: Three Easy Pieces que encontra-se disponibilizado gratuitamenta no endereço: http://pages.cs.wisc.edu/~remzi/OSTEP/.
Material de apoio a ser utilizado:
Guias e Materiais de Estudos:
CS4414: Operating Systems, University of Virginia - David Evans
http://rust-class.org/index.html.
CS 162: Operating Systems and System Programming, University of Berkeley - Sam Kumar
https://cs162.eecs.berkeley.edu/.
CS 140: Operating Systems, Stanford University - John Ousterhout
http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/index.php.
Operating System Engineering, MIT - Frans Kaashoek
Caso mais materiais de apoio sejam utilizados, eles deverão estar obrigatoriamente disponíveis nas plataformas apontadas em formato gratuíto, e suas fontes serão divulgadas oficialmente via Moodle ou Microsoft Teams.
Horário de Atendimento aos estudantes:
Os horários de atendimento serão definidos conforme demanda por parte dos discentes.
Cronograma previsto para desenvolvimento do conteúdo:
Semana : Conteúdo
1: Conceitos básicos de SO. Estrutura básica de um SO. Gestão de Processo – Conceitos, estados e escalonadores, troca de contexto. Gestão de Processo – Tabela de Processo e algoritmos de escalonamento.
2: Threads. Pthreads.Sincronização. Semáforos.
3: Threads. Pthreads.Sincronização. Semáforos. Avaliação.
4: Introdução à gestão de memória. Modelo de memória sem abstração. Realocação. Uso de registrador-base e limite. Segmentação.
5: Paginação. Estrutura de dados relativos a paginação. Tabela de página. Tabela de página multinível. Tabela de página invertida. Algoritmos de substituição de página.
6: Algoritmos de substituição de página. Avaliação.
7: Organização básica de um FS em disco. Arquivo e Diretório. I-node. Algoritmo de backup. VFS. Gestão de espaço em disco. i/O. Modelos de I/O: Programada, por interrupção e DMA. Funcionamento de HD. RAID.
8: Concorrência.
9: Estudo comparativo: Linux e Windows. Segurança. Avaliação.
AVALIAÇÃO
A avaliação do desempenho dos alunos será somativa, consistindo em componentes individuais, representados na forma de ao menos duas avaliações teóricas onde perguntas serão efetuadas pelo docente e deverão ser respondidas pelos discentes em formato síncrono e ao menos dois projetos propostos aos estudantes. As avaliações teóricas em conjunto terão valor de 80 pontos e os projetos terão em conjunto valor de 20 pontos, totalizando 100 pontos.
BIBLIOGRAFIA
Básica
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas operacionais com java. 7. ed.
Rio de Janeiro: Campus, 2008.
STALLINGS, W. Operating Systems: internals and design principles. 7. ed. [S.l.]: Prentice Hall, 2011.
TANENBAUM, A. S. Sistemas operacionais modernos. 2. ed. [S.l.]: Pearson, 2010.
ARPACI-DUSSEAU, Remzi H.; ARPACI-DUSSEAU, Andrea C. Operating systems: Three easy pieces. 1. ed. [S. l.]: Arpaci-Dusseau Books, LLC, 2018.
Complementar
BEN-ARI, M. Principles of concurrent and distributed programming. [S.l.]: Addison-Wesley, 2006.
DEITEL, H. M.; DEITEL, J. M.; CHOFFNES, D. R. Sistemas operacionais. 3. ed. [S. l.]: Pearson, 2005.
MCKUSICK, M. K.; NEVILLE-NEIL, G. V. The design and implementation of the FreeBSD operating system. [S. l.]: Addison-Wesley Professional, 2004.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais.
6. ed. [S.l.]: LTC, 2010.
TANENBAUM, A. S.; WOODHULL, A. S. Operating systems design and implementation. 3. ed. [S.l.]: Prentice Hall, 2006.
APROVAÇÃO
Aprovado em reunião do Colegiado realizada em: ____/____/______
Coordenação do Curso de Graduação: _________________________
Documento assinado eletronicamente por Kil Jin Brandini Park, Professor(a) do Magistério Superior, em 24/07/2020, às 14:20, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 2156411 e o código CRC 50C139B6. |
Referência: Processo nº 23117.039929/2020-79 | SEI nº 2156411 |