|
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
Introdução
Definição e Características de um Sistema Operacional
Estrutura de um Sistema Operacional
Serviços do Sistema Operacional
Chamadas de Sistemas
Projeto e Implementação do Sistema Operacional
Mecanismos e Políticas
Implementação
Estrutura do Sistema Operacional
Monolíticos
Camadas
Microkernels
Módulos
Máquinas virtuais
Cliente-sevidor
Gerência de processos
Conceito de Processos
Estados de um Processo
Bloco de Controle de Processos
Escalonamento de Processos
Troca de contexto
Criação de Processos
Comunicação entre Processos
Threads
Motivação para o uso de Threads
Modelos de Múltiplas Threads
Bibliotecas de Threads
Posix Threads – Pthreads
Windows Threads
Threads em Java
Aspectos do uso de Threads
Escalonamento de processos
Ciclos de CPU e ES (Entrada e Saída)
Conceitos de Preempção
Algoritmos de Escalonamento
First Come, First Served – FCFS
Shortest Job First – SJF
Escalonamento por Prioridade
Round-Robin
Filas Multinível
Escalonamento de Threads
Escalonamento em Múltiplos processadores
Programação concorrente
Sincronização de processos
Caracterização
Seção Crítica
Hardware de Sincronismo
Semáforos
Monitores
Problemas Clássicos de Sincronismo
Deadlock
Caracterização do Deadlock
Grafo de Alocação de Recursos
Métodos para Tratamento de Deadlocks
Prevenção de Deadlocks
Detecção de Deadlock
Recuperação do Deadlock
Gerência de memória
Carregamento absoluto e carregamento relocado
Alocação contígua
Partições fixas
Partições variáveis
Alocação não-contígua
Paginação
Segmentação
Segmentação paginada
Memória virtual
Paginação por Demanda
Algoritmos de substituição de página
Trashing
Sistemas de arquivos
Arquivos e diretórios
Estruturação de arquivos
Segurança em sistemas de arquivos
Implementação de sistemas de arquivos
Alocação de espaço em disco
Alocação contígua
Alocação encadeada
Alocação indexada
Gerência de espaço livre em discos
Múltiplos sistemas de arquivos.
Sistemas de Arquivos de Rede
Gerência de entrada e saída
Controlador e driver de dispositivo
E/S programada
Interrupções
DMA (Direct Memory Access – Acesso Direto a Memória)
Organização de discos rígidos
Algoritmos de escalonamento de braço de disco
Sistemas RAID (Redundant Array of Independent Disks)
Estudos de Caso: Sistemas Operacionais de Propósito Específicos
Sistemas Operacionais de Tempo Real
Sistemas Operacionais Multimídia
Sistemas Operacionais Embarcados
Segurança em Sistemas Operacionais
METODOLOGIA
O curso será desenvolvido através de atividades síncronas. 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. Para cada aula expositiva, os alunos deverão responder a um questionário com perguntas teóricas a respeito dos tópicos cobertos.
Atividades síncronas: 45 horas
Plataforma de T.I./softwares que serão utilizados:
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:
Aula |
Conteúdo |
1 |
Gestão de Processo – Conceitos, estados e escalonadores, troca de contexto. PCB. Chamadas de Sistema (POSIX) para Gestão de processos |
2 |
Algoritmos de Escalonamento: FIFO, SJB, STCF, Round Robin, MLFQ |
3 |
Algoritmos de Escalonamento: Linux CFS, Multiprocessador - SQMS e MQMS. Espaço de Endereçamento |
4 |
API para Gestão de Memória. Tradução de Endereços. Segmentação e Controle de memória livre / alocação de memória livre |
5 |
Paginação. TLB. Tabelas de Páginas Multiníveis. Tabelas de Páginas Invertidas. Políticas de substituição: Ótima, FIFO, Randômica, LRU. Cargas de trabalhoabelas de Páginas Multiníveis. Tabelas de Páginas Invertidas. Políticas de substituição: Ótima, FIFO, Randômica, LRU. Cargas de trabalho |
6 |
Prova 1 |
7 |
Concorrência, threads, pthreads, condição de corrida, região crítica. API pthreads |
8 |
Locks: Spin lock, Compare and Swap, Load Linked e Store Conditional, Fetch and Add. Variáveis Condicionais. Produtor-consumidor e Filósofos famintos |
9 |
Semáforo. Violação de atomicidade. Violação de ordem. Deadlock. Prevenções de problemas |
10 |
Prova 2 |
11 |
Técnicas de I/O: Programada, Interrupção e DMA. Interface IDE. HDs. Arquivos e Diretórios |
12 |
Implementação de Sistemas de Arquivos: Blocos, Inodes, entradas de diretórios |
13 |
FFS, FSCK, Journaling, LSFS |
14 |
Revisão |
15 |
Prova 3 |
AVALIAÇÃO
Sistema de 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 com pesos iguais e Questionários com pesos iguais sobre os conteúdos cobertos nas aulas síncronas, a serem disponibilizados na plataforma Microsoft Teams e cujas respostas deverão ser entregues em formato manuscrito digitalizado através da plataforma supracitada.
A nota final será igual a:
(0,90*Mp + 0,10*Mq) * Rf, onde
Mp = média das avaliações teóricas
Mq = média dos questionários
Rf = fator de entrega. Para cada questionário entregue, o fator é incrementado em 0,12, até o valor limite de 1
Caso o aluno opte por fazer a prova de recuperação, a nota final será igual a:
Nf = 0,80*N + 0,20*Pr
Onde N é a nota obtida no semestre e Pr a nota obtida na prova de recuperação.
As datas das provas seguirão o cronograma apresentado na sessão anterior deste documento.
A assiduidade dos alunos será computada através de chamadas durante as aulas síncronas.
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.
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 11/08/2023, às 17:04, 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 4733528 e o código CRC 29E532E8. |
Referência: Processo nº 23117.054632/2023-86 | SEI nº 4733528 |