UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

SISTEMAS OPERACIONAIS

Unidade Ofertante:

FEELT

Código:

FEELT31627

Período/Série:

6 Semestre

Turma:

C

Carga Horária:

Natureza:

Teórica:

30

Prática:

15

Total:

45

Obrigatória:

(X)

Optativa:

( )

Professor(A):

Kil Jin Brandini Park

Ano/Semestre:

2022/2

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. 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

  1. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas operacionais com java. 7. ed.

  2. Rio de Janeiro: Campus, 2008.

  3. STALLINGS, W. Operating Systems: internals and design principles. 7. ed. [S.l.]: Prentice Hall, 2011.

  4. TANENBAUM, A. S. Sistemas operacionais modernos. 2. ed. [S.l.]: Pearson, 2010.

Complementar

  1. BEN-ARI, M. Principles of concurrent and distributed programming. [S.l.]: Addison-Wesley, 2006.

  2. DEITEL, H. M.; DEITEL, J. M.; CHOFFNES, D. R. Sistemas operacionais. 3. ed. [S. l.]: Pearson, 2005.

  3. MCKUSICK, M. K.; NEVILLE-NEIL, G. V. The design and implementation of the FreeBSD operating system. [S. l.]: Addison-Wesley Professional, 2004.

  4. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais.

  5. 6. ed. [S.l.]: LTC, 2010.

  6. 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: _________________________

 


logotipo

Documento assinado eletronicamente por Kil Jin Brandini Park, Professor(a) do Magistério Superior, em 27/01/2023, às 17:51, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

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 4223178 e o código CRC BC54E466.




Referência: Processo nº 23117.002527/2023-61 SEI nº 4223178