Mudanças entre as edições de "SOP-EngTel (Plano de Ensino)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 15: Linha 15:
 
;Objetivos
 
;Objetivos
 
:Ao final do curso os alunos deverão ser capazes de:
 
:Ao final do curso os alunos deverão ser capazes de:
* Entender a função de um sistema operacional;
+
:* Entender a função de um sistema operacional;
* Entender os mecanismos internos de um sistema operacional para escalonamento de processos e gerenciamento de recursos (memória, arquivos e dispositivos de entrada/saída);
+
:* Entender os mecanismos internos de um sistema operacional para escalonamento de processos e gerenciamento de recursos (memória, arquivos e dispositivos de entrada/saída);
* Compreencer os mecanismos de um sistema operacional para segurança e proteção;
+
:* Compreencer os mecanismos de um sistema operacional para segurança e proteção;
* Desenvolver software utilizando APIs do sistema operacional.
+
:* Desenvolver software utilizando APIs do sistema operacional.
  
 
;Ementa
 
;Ementa
Linha 24: Linha 24:
  
 
;Conteúdo Programático
 
;Conteúdo Programático
:1.Introdução aos sistemas operacionais: histórico, conceitos e organização (8h). <br>2.Conceito de processo, Gerência de processador: escalonamento de processos, mono‐programação e multiprogramação (10h). <br>3.Concorrência e sincronização de processos: seção crítica, exclusão mútua, semáforo, condição de corrida, algoritmos de escalonamento clássicos (18h). <br>4.Gerenciamento de memória: memória com partições fixas, memória virtual, paginação, segmentação (12h). <br>5.Sistema de arquivos: arquivos, diretórios, gerência de espaço livre, segurança, mecanismos de proteção (8h). <br>6.Gerenciamento de dispositivos de  entrada/saída: princípios de E/S, discos, relógios (6h). <br>Avaliações (10h).
+
# Introdução aos sistemas operacionais: histórico, revisão de conceitos de hardware, conceitos de sistemas operacionais, chamadas de sistema, estrutura de sistemas operacionais (6ha);
 +
# Gerenciamento de processos: processos, threads, comunicação entre processos (Troca de mensagens e Memória compartilhada), escalonamento (8ha);
 +
# Programação concorrente: condições de corrida e regiões críticas, exclusão mútua (mutex), semáforos, monitores, barreiras, deadlock, problemas clássicos de programação concorrente (16ha);
 +
# Gerenciamento de memória: espaços de endereçamento, memória virtual, paginação e segmentação, substituição de páginas, questões de projeto e implementação para sistemas de paginação (10ha);
 +
# Sistema de arquivos: arquivos, diretórios, implementação do sistema de arquivos, gerenciamento e otimização de sistemas de arquivos (gerenciamento de espaço, backups, consistência, desempenho e desfragmentação, RAID), estudos de caso (12ha);
 +
# Entrada/saída: princípios do hardware e software de E/S, camadas de software de E/S, implementação de drivers (discos, relógios, teclado, mouse, monitor), gerenciamento de energia (8ha);
 +
# Proteção e Segurança: segurança em sistemas operacionais, controle de acesso a recursos, autenticação, ataques, vírus e malware, defesas (firewall, antivírus) (6ha);
 +
# Avaliações (6ha).
  
 
;Estratégias de ensino utilizadas
 
;Estratégias de ensino utilizadas
Linha 30: Linha 37:
  
 
;Critérios e instrumentos de avaliação
 
;Critérios e instrumentos de avaliação
*Provas: serão realizadas 2 provas (P0 e P1).
+
:Registro realizado em conceitos numéricos entre 0 e 10.
*Trabalhos: será desenvolvido um projeto ao longo do semestre, constando de oito entregas parciais (t0 a t7). Os trabalhos de programação comporão dois conceitos: T0 (t0 a t4) e T1 (t5 a t7). A avaliação de T0 e T1 se dará por entrevista dos alunos.
+
:Provas escritas (P)
:* t0: troca de contexto e tarefas cooperativas
+
:* P0: conteúdos 1, 2 e 3;
:* t1: escalonamento FIFO e por prioridades
+
:* P1: conteúdos 4, 5, 6 e 7.
:* t2: Preempção e compartilhamento de tempo
+
:Trabalhos de programação (T) - entrega de código fonte e relatório.
:* t3: contabilização de tarefas
+
:* T0: Uso de chamadas POSIX (e.g., fork/wait/exec);
:* t4: join e sleep
+
:* T1: Programação concorrente com pthreads;
:* t5: semáforo, produtor/consumidor e fila de mensagens
+
:* T2: Sistemas de arquivos;
:* t6: gerência de memória (lista de blocos livres e first-fit)
+
:* T3: Implementação de driver como módulo do Linux.
:* t7: gerência de memória (best-fit, worst-fit e cálculo de fragmentação)
+
:Conceito final (F)
 
+
:* F := (4*P0 + 4*P1 + 2*T0 + 4*T1 + 2*T2 + 4*T3)/20
*Critério de aprovação: o aluno deverá obter ao menos '''C''' em cada uma das avaliações (P0, P1, T0 e T1).
+
:Mecanismo de recuperação
*Mecanismo de recuperação
+
:* P: provas ao final do semestre. Será oferecida uma prova de recuperação composta de duas partes. A primeira parte contempla o conteúdo da P0, e o desempenho do aluno nesta parte substitui o conceito conseguido na P0. A segunda parte contempla o conteúdo da P1, e o desempenho do aluno nesta parte substitui o conceito conseguido na P1.
** Provas: será oferecida uma provas de recuperação abrangendo os conteúdos em que cada aluno não tenha alcançado o conceito mínimo. Os conceitos P0 e P1 serão revistos a partir do desempenho do aluno na prova de recuperação.
+
:* T: segunda chance. O aluno terá a oportunidade de apresentar novo trabalho corrigido no prazo de 10 dias após a publicação da correção pelo professor, sendo que o conceito máximo atribuído ao aluno neste caso será 7.
** A recuperação dos conceitos dos trabalhos se dará pela prorrogação do prazo de entrega. O conceito máximo dos alunos que apresentarem o T0 e T1 no prazo será '''A'''/'''10'''. Os alunos não aprovados nas entrevistas dos projetos terão a chance de outra defesa após uma semana, porém neste caso o conceito máximo será '''B'''/'''8'''. Não sendo aprovados novamente, os alunos terão uma terceira e última chance de serem aprovados na entrevista, porém desta vez concorrendo a um conceito máximo '''C'''/'''6'''. A não aprovação na terceira entrevista gera o conceito '''D'''/'''1''' e consequente reprovação.
+
:Critérios para aprovação (após recuperações) - satisfazer todas as seguintes condições:
 
+
:* F >= 6
 +
:* (P0 + P1) >= 10 (média mínima de 5 nas provas)
 +
:* (T0 + T1 + T2 + T3) >= 20 (média mínima de 5 nos trabalhos)
  
 
;Atividades Complementares
 
;Atividades Complementares
:Serão realizados roteiros de atividades em laboratório para complementar os conhecimentos dos alunos, incluindo:
+
:Serão realizados roteiros de atividades em laboratório para complementar os conhecimentos dos alunos;
 +
:Além dos roteiros, os seguintes trabalhos de desenvolvimento de software serão executados:
 
:*Implementação de um terminal utilizando chamadas POSIX fork/wait/exec
 
:*Implementação de um terminal utilizando chamadas POSIX fork/wait/exec
 
:*Programação concorrente com pthreads
 
:*Programação concorrente com pthreads
:*Mecanismo de memória compartilhada com mmap no Linux
+
:*Sistemas de arquivos
 
:*Implementação de driver como módulo do Linux
 
:*Implementação de driver como módulo do Linux
  

Edição das 15h14min de 15 de agosto de 2016

LogoIFSCCampusSJ.png

MINISTÉRIO DA EDUCAÇÃO
SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA
CAMPUS SÃO JOSÉ
Curso de Engenharia de Telecomunicações

Plano de Ensino de 2016-1 - atual

Dados gerais
COMPONENTE CURRICULAR: SOP - SISTEMAS OPERACIONAIS
CARGA HORÁRIA: 4 HORAS/SEMANA 72 HORAS. TEÓRICA = 54 HORAS. LABORATÓRIO = 18 HORAS
UCs vizinhas
CÓDIGO ISAAC: SOP29005
PRÉ REQUISITOS: PRG2, MIC
DISCIPLINAS SUCESSORAS: STE, STD
MÓDULO PROFISSIONALIZANTE
Objetivos
Ao final do curso os alunos deverão ser capazes de:
  • Entender a função de um sistema operacional;
  • Entender os mecanismos internos de um sistema operacional para escalonamento de processos e gerenciamento de recursos (memória, arquivos e dispositivos de entrada/saída);
  • Compreencer os mecanismos de um sistema operacional para segurança e proteção;
  • Desenvolver software utilizando APIs do sistema operacional.
Ementa
Introdução aos sistemas operacionais. Aspectos internos de gerenciamento de processos, do sistema de arquivos, de memória e de dispositivos de entrada/saída. Aspectos de segurança e proteção. Conceito de API. Interfaces com o usuário.
Conteúdo Programático
  1. Introdução aos sistemas operacionais: histórico, revisão de conceitos de hardware, conceitos de sistemas operacionais, chamadas de sistema, estrutura de sistemas operacionais (6ha);
  2. Gerenciamento de processos: processos, threads, comunicação entre processos (Troca de mensagens e Memória compartilhada), escalonamento (8ha);
  3. Programação concorrente: condições de corrida e regiões críticas, exclusão mútua (mutex), semáforos, monitores, barreiras, deadlock, problemas clássicos de programação concorrente (16ha);
  4. Gerenciamento de memória: espaços de endereçamento, memória virtual, paginação e segmentação, substituição de páginas, questões de projeto e implementação para sistemas de paginação (10ha);
  5. Sistema de arquivos: arquivos, diretórios, implementação do sistema de arquivos, gerenciamento e otimização de sistemas de arquivos (gerenciamento de espaço, backups, consistência, desempenho e desfragmentação, RAID), estudos de caso (12ha);
  6. Entrada/saída: princípios do hardware e software de E/S, camadas de software de E/S, implementação de drivers (discos, relógios, teclado, mouse, monitor), gerenciamento de energia (8ha);
  7. Proteção e Segurança: segurança em sistemas operacionais, controle de acesso a recursos, autenticação, ataques, vírus e malware, defesas (firewall, antivírus) (6ha);
  8. Avaliações (6ha).
Estratégias de ensino utilizadas
Aulas expositivas e dialogadas com o uso de lousa e projetor multimídia; roteiros de atividades em laboratório para aquisição de habilidades básicas; projetos baseados no conteúdo programático para verificar aplicação dos conceitos abordados.
Critérios e instrumentos de avaliação
Registro realizado em conceitos numéricos entre 0 e 10.
Provas escritas (P)
  • P0: conteúdos 1, 2 e 3;
  • P1: conteúdos 4, 5, 6 e 7.
Trabalhos de programação (T) - entrega de código fonte e relatório.
  • T0: Uso de chamadas POSIX (e.g., fork/wait/exec);
  • T1: Programação concorrente com pthreads;
  • T2: Sistemas de arquivos;
  • T3: Implementação de driver como módulo do Linux.
Conceito final (F)
  • F := (4*P0 + 4*P1 + 2*T0 + 4*T1 + 2*T2 + 4*T3)/20
Mecanismo de recuperação
  • P: provas ao final do semestre. Será oferecida uma prova de recuperação composta de duas partes. A primeira parte contempla o conteúdo da P0, e o desempenho do aluno nesta parte substitui o conceito conseguido na P0. A segunda parte contempla o conteúdo da P1, e o desempenho do aluno nesta parte substitui o conceito conseguido na P1.
  • T: segunda chance. O aluno terá a oportunidade de apresentar novo trabalho corrigido no prazo de 10 dias após a publicação da correção pelo professor, sendo que o conceito máximo atribuído ao aluno neste caso será 7.
Critérios para aprovação (após recuperações) - satisfazer todas as seguintes condições:
  • F >= 6
  • (P0 + P1) >= 10 (média mínima de 5 nas provas)
  • (T0 + T1 + T2 + T3) >= 20 (média mínima de 5 nos trabalhos)
Atividades Complementares
Serão realizados roteiros de atividades em laboratório para complementar os conhecimentos dos alunos;
Além dos roteiros, os seguintes trabalhos de desenvolvimento de software serão executados:
  • Implementação de um terminal utilizando chamadas POSIX fork/wait/exec
  • Programação concorrente com pthreads
  • Sistemas de arquivos
  • Implementação de driver como módulo do Linux
Bibliografia Básica
  1. Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Fundamentos de sistemas operacionais; 8ª ed. Rio de Janeiro:LTC, 2010. 536p. ISBN 9788521617471
  2. Andrew S. Tanenbaum Sistemas operacionais modernos; 3ª ed. São Paulo:Pearson Education do Brasil, 2010. 672p. ISBN 9788576052371
  3. Rômulo S. Oliveira; Alexandre S. Carissimi; Simão S. Toscani Sistemas Operacionais; 4ª ed. Porto Alegre:Bookman, 2010. 375p. ISBN 9788577805211
Bibliografia Complementar
  1. Johnson M. Hart Windows System Programming; 4ª ed. EUA:Addison-Wesley Professional, 2010. 656p. ISBN 9780321657749
  2. Brian L. Stuart Princípios de sistemas operacionais: projetos e aplicações; 1ª ed. São Paulo:Cengage Learning, 2011. 680p. ISBN 9788522107339
  3. Robert Love Linux System Programming: Talking Directly to the Kernel and C Library; 2ª ed. EUA:O'Reilly Media, 2013. 456p. ISBN 9781449339531
  4. William Stallings Operating systems: internals and design principles; 8ª ed. Upper Saddle River:Prentice Hall, 2014. 840p. ISBN 9780133805918

ANEXOS

Cronograma de atividades
Horário de Aula e Atendimento Paralelo


Curso de Engenharia de Telecomunicações