190 likes | 338 Views
Sistemas Operacionais: FreeBSD e Linux . Daniel Ribeiro Juliana Lee . História do FreeBSD.
E N D
Sistemas Operacionais: FreeBSD e Linux Daniel Ribeiro Juliana Lee
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.
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).
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.
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.
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.
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)
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.
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.
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’.
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
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.
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
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.
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.
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.