|
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 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, através das plataformas Google Meet e Microsoft Teams. 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, trechos de códigos-fonte de softwares.
Aula - Conteúdo
1 - Conceitos básicos de SO. Estrutura básica de um SO.
2 - Gestão de Processo – Conceitos, estados e escalonadores, troca de contexto. Gestão de Processo – Tabela de Processo e algoritmos de escalonamento.
3 - Threads. Pthreads.
4 - Sincronização. Semáforos.
5 - Problema do produtor – consumidor.
6 - Introdução à gestão de memória. Modelo de memória sem abstração. Realocação. Uso de registrador-base e limite.
7 - Paginação
8 - Estrutura de dados relativos a paginação. Tabela de página. Tabela de página multinível. Tabela de página invertida.
9 - Algoritmos de substituição de página.
10 - Segmentação.
11 - Introdução aos Sistemas de Arquivos.
12 - Organização básica de um FS em disco. Arquivo e Diretório
13 - 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
14 - Funcionamento de HD. RAID. Concorrência. Deadlock
15 - Concorrência. Deadlock. Estudo de caso: Sistemas Operacionais Windows e Linux.
AVALIAÇÃO
A avaliação do desempenho dos alunos será somativa, consistindo em componentes individuais, representados na forma de três avaliações teóricas e oito questionários.
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.
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.
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 23/06/2021, às 14:05, 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 2856187 e o código CRC E6F5281B. |
Referência: Processo nº 23117.039263/2021-30 | SEI nº 2856187 |