1 / 19

Sistemas Operacionais: FreeBSD e Linux

Sistemas Operacionais: FreeBSD e Linux . Daniel Ribeiro Juliana Lee . História do FreeBSD.

rowa
Download Presentation

Sistemas Operacionais: FreeBSD e Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Operacionais: FreeBSD e Linux Daniel Ribeiro Juliana Lee

  2. História do FreeBSD • BSD, ou "Berkeley Software Distribution", surgiu como um conjunto de ‘patches’ e ferramentas para o Unix feitos pelo Computer Systems Research Group (CSRG) da Universidade de Berkeley na Califórnia. • Quando o CSRG foi extinto, grupos de seus ex membros continuaram desenvolvendo o código. Um desses grupos desenvolveu o 386BSD, que rodava na plataforma Intel i386. • Em 1993, este projeto se dividiu em outros dois: o FreeBSD e o NetBSD. Em 1996, um projeto posterior, o OpenBSD, originou-se à partir do NetBSD.

  3. Diferenças entre os BSDs • O FreeBSD tem como propósito principal ter alta performance e facilidade de uso para usuários finais. É o BSD mais utilizado. • A principal preocupação do NetBSD é portabilidade. • O OpenBSD tem enfoque em questões de segurança e correção formal. • BDS não livres: Darwin (usado no Mac OS X) e BSD/OS (é bastante similar ao FreeBSD).

  4. História do Linux • 1991 - Surgiu a 1ª versão como um clone do UNIX, com 9.300 linhas em C e 950 linhas em Assembler. • 1996 - 2ª versão, com 470.000 linhas em C e 8.000 linhas em Assembler, suporte para arquiteturas de 64 bits, novos protocolos e várias outras características. • Apesar de livre, a GPL (GNU Public License) é maior que a Licença do Windows 2000 da Microsoft e especifica o que o usuário pode ou não fazer com o código.

  5. Processos • Ciclo de vida igual ao Unix. • Os processos são organizados em grupos. São usados para controlar acesso a terminais e prover meios de distribuição de sinais para processos correlatos. • Jobs = processos de um mesmo grupo. • Filhos de um processo herdam o grupo do pai. Um processo pode alterar o seu grupo, ou o de seus descendentes, mas a alteração deve seguir algumas regras.

  6. Processos (cont.) • Pipe: processos envolvidos sofrem um fork e estes são colocados num mesmo grupo. • Grupos podem ser todos manipulados juntos por alguns mecanismos. • Sessões: agrupamentos de grupos de processos • Principais usos das sessões: criar ambientes isolados para um daemon e seus filhos, e coletar de uma vez o shell login e os jobs que esta shell cria.

  7. Processos • Processos e Threads • Executável, Dormente, Zumbi, Parado • No Linux, as propriedades de um processo são agrupadas em: – identidade do processo - PID, Credenciais que definem os direitos de acesso a ficheiros e outros recursos do sistema – ambiente (environment) - Composto por 2 vetores de apontadores para caracteres – contexto - É o estado de um programa em execução num dado instante de tempo (muda constantemente)

  8. Escalonamento de processos • Todo processo possui uma prioridade de escalonamento a ele associada: quanto maior o número, menor a prioridade. Processos fazendo I/O de disco ou outras funções importantes possuem prioridades menores do que “pzero” e não podem ser mortos por sinais. • Processos de usuários comuns possuem prioridades positivas, e portanto são menos propensos a rodar do que qualquer processo do sistema. • Processos de usuário podem setar sua precedência um sobre ou outro, através do comando nice. • Quanto mais tempo de CPU um processo acumula, menor (mais positiva), sua prioridade se torna.

  9. Escalonamento de processos • Linux usa dois algoritmos de escalonamento: – Um para processos interativos (time sharing) – Um para processos de tempo real (real time) - FIFO - Round Robin • Cada processo tem o campo counter que é número de jiffies que lhe restam para correr. É decrementado a cada tick do relógio. Quando chega a zero, é chamado o escalonador. • O escalonador examina os descritores de todos os processos prontos, calculando o goodness para cada um; escolhe para correr o processo que tiver o goodness mais alto.

  10. Memória Virtual • Esquema de paginação simples. • Compilação padrão seta a prepaginação (raramente não se habilita esta opção). • Reposição: Usa esquema FIFO 2 chance modificado. Libera páginas marcadas livres (em fila). Se o frame não estiver marcado livre e não estiver em uso (ex: I/O está sendo feito), a entrada na tabela de páginas que referencia o frame é buscado. Se for ‘inválida’, a página é adicionada à fila de páginas livres. Senão, a página é marcada ‘inválida’.

  11. Memória Virtual (cont.) • Se o bit de referência existir, ele é usado ao invés de tais marcações. • Existem verificações para garantir que o número de páginas válidas apontadas por um processo não fica num nível baixo. • Existe um mecanismo que um processo pode limitar a quantidade de memória principal que ele utiliza. • O padrão é que o segmento de dados de cada processo seja compartilhado e somente para leitura

  12. Memória • Memória Real e Virtual • Swapping • Tabela de segmentos converte o endereço virtual, composto pelo par <nº do segmento, deslocamento>, num endereço físico. • Ponto importante: as páginas virtuais só são copiadas para memória física quando são referenciadas.

  13. Memória (cont.) Páginas: • Estratégias de escolha - Demanda • Estratégias de colocação - first-fit / best-fit / worst-fit / random-fit • Estratégias de reposição - Randômico, FIFO, LRU, LFU, NUR, WS

  14. Abstract model of Virtual to Physical address mapping

  15. Sistemas de Arquivos • Alguns sistemas de arquivos do FreeBSD possuem dois tamanhos de blocos para inodes sem indiretos. Todos os blocos excepto o último possuem o mesmo tamanho. O último bloco é um múltiplo apropriado de um menor tamanho de fragmento (ex 1k) apropriado para completar o arquivo. • Ex: um arquivo de 18,000 bytes teria dois blocos de 8K e um fragmento de 2K (que não seria completo totalmente). • Muitos arquivos pequenos – tamanho de framento pequeno. • Tamanho de bloco / tamanho de fragmento: no máximo 8:1. • Menor tamanho de um bloco: 4K.

  16. Sistemas de Arquivos • Muito flexível e capaz de coexistir com muitos SO, já que suporta 15 file systems: ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs and ufs, além de outros que serão adicionados com o tempo. • 1992 – Surge o 1º file system designado especialmente para Linux, o Extended File system, ou EXT. • 1993 – Surge o Second Extended File system, ou EXT2. Cada arquivo no EXT2 file é descrito por um simples inode e cada inode tem um único nº que o identifica.

  17. Sistemas de ArquivosEXT2 Inode

  18. Sistemas de ArquivosEXT2 Inode (cont.) • mode – dividido em 2 pedaços: o que este inode descreve e as permissões que usuários tem para ele. • Owner Information – tipo de usuário e grupo a que os donos deste arquivo ou diretório pertencem. • Size – o tamanho do arquivo em bytes. • Timestamps – a hora em que o inode foi criado e a útlima hora em que foi modificado. • Datablocks – ponteiros para os blocos que contém os dados que este inode está descrevendo.

  19. Fim

More Related