Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas de Computao
PDF gerado usando o pacote de ferramentas em cdigo aberto mwlib. Veja http://code.pediapress.com/ para mais informaes. PDF generated at: Wed, 04 Jan 2012 13:37:42 UTC
Contedo
Pginas
Computao Arquitetura de computadores Sistema de processamento distribudo Sistema de ficheiros Escalonamento de processos Deadlock Auditoria em segurana da informao 1 2 4 6 9 13 17
Referncias
Fontes e Editores da Pgina Fontes, Licenas e Editores da Imagem 19 20
Computao
Computao
A computao pode ser definida como a busca de uma soluo para um problema a partir de entradas (inputs) e tem seus resultados (outputs) depois de trabalhada atravs de um algoritmo. com isto que lida a teoria da computao, subcampo da cincia da computao e da matemtica. Durante milhares de anos, a computao foi executada com caneta e papel, ou com giz e ardsia, ou mentalmente, por vezes com o auxlio de tabelas ou utenslios artesanais. A partir da segunda metade do sculo XX, com o advento dos computadores eletrnicos, a Computao passou a ter uma presena cada vez mais marcante na sociedade, influenciando a vida diria de parte da populao mundial. A partir da dcada de 1950, a Computao ganhou o status de Cincia surgindo ento o termo cincia da computao, uma rea do conhecimento humano hoje fortemente ligado produo de software.
A Wikipdia possui o portal: Portal das tecnologias de informao
Leituras Complementares
Garey, Michael R., and David S. Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness. New York: W. H. Freeman & Co., 1979. Uma referncia padro aos problemas do tipo NP-Completo, uma importante categoria de problemas cuja soluo parece requerer um tempo impraticavelmente longo para efetivar sua computao. Hein, James L: Theory of Computation. Sudbury, MA: Jones & Bartlett, 1996. Uma introduo suave ao assunto da Teoria da Computao, apropriado para alunos do segundo ano de um curso de graduao em Cincia da Computao. Hopcroft, John E., and Jeffrey D. Ullman: Introduction to Automata Theory, Languages, and Computation. Reading, MA: Addison-Wesley, 1979. Uma das referncias padro na rea de autmatos finitos e linguagens formais. Taylor, R. Gregory: Models of Computation. New York: Oxford University Press, 1998. Um dos raros textos facilmente legveis sobre Teoria da Computao, apropriado para alunos de graduo ou mestrado.
Arquitetura de computadores
Arquitetura de computadores
A evoluo da informtica foi caracterizada pelo desenvolvimento de computadores com caractersticas as mais diversas, traduzidas pelos diferentes parmetros, cada vez mais conhecidos da maioria de usurios de computador: a CPU adotada, a capacidade de memria, a capacidade do disco rgido, a existncia de memria cache e outros menos conhecidos. A definio destes parmetros e a forma como os diversos componentes de um computador so organizados, define aquilo que conhecido por arquitetura de computador e vai determinar aspectos relacionados qualidade, ao desempenho e aplicao para a qual o computador vai ser orientado. Existem vrios modos de uso do termo, que podem ser usados referindo-se a: O desenho da arquitetura da CPU do computador, o seu conjunto de instrues, "addressing modes" e tcnicas, tais como paralelismo SIMD e MIMD. Arquiteturas de hardware mais generalizadas, tais como computao em cluster e arquiteturas NUMA (acesso no-uniforme memria). A utilizao menos formal do termo refere-se a uma descrio dos requisitos (especialmente requisitos de velocidades e interligao) ou implementao do design para as vrias partes de um computador, tais como memria, placa-me, perifricos eletrnicos ou, mais frequentemente, CPU. A arquitetura frequentemente definida como o conjunto de atributos da mquina que um programador deve compreender para que consiga programar o computador especfico com sucesso, ou seja, para que consiga compreender o que o programa ir fazer aquando da sua execuo. Por exemplo, parte da arquitetura so as instrues e o raio de operadores manipulados por elas. De uma maneira semelhante, a frequncia em que o sistema opera no includa na arquitetura. Esta definio revela as duas principais consideraes dos arquitetos de computadores: (1)desenhar hardware que se comporta como o programador pensa que se ir comportar, (2)utilizar implementaes existentes de tecnologias (por exemplo, semicondutores) para construir o melhor computador possvel. A 2 considerao frequentemente referida como a microarquitetura.
Histria
A expresso "Arquitetura de computadores", na literatura, pode ser atribuda a Lyle R. Johnson, Muhammad Usman Khan e Frederick P. Brooks, Jr. Em 1959 eram membros do departamento de Organizao de Mquinas da IBM. Johnson teve a oportunidade de escrever uma comunicao de pesquisa proprietria sobre Strech, um super computador desenvolvido pela IBM para Los Alamos Scientific Laboratory (Laboratrio Nacional de Los Alamos). Na tentativa de caracterizar o seu nvel desejado de detalhe, ele observou que sua descrio de formatos, tipos de instrues, os parmetros de hardware e melhorias de velocidade foi a nvel de "Arquitetura do Sistema" Um termo que parecia ser mais til do que "Organizao de Mquina". Posteriormente, Brooks, um dos designers do Strech, comeou o captulo 2 de um livro (Planning a Computer System: Project Stretch, ed W. Buchholz, 1962), escrevendo, "Arquitetura de computadores, como outra arquitetura, a arte de determinar as necessidades do usurio de uma estrutura e, possvel dentro das limitaes econmicas e tecnolgicas." Brooks passou a desempenhar um papel no desenvolvimento do IBM System/360(agora chamado de IBM System z) linha de computadores, onde a "arquitetura" ganhou moeda como um substantivo com a definio como "o que o usurio precisa saber". Mais tarde, o mundo da informtica, empregaria o termo, em formas muito menos explcitas.
Arquitetura de computadores
Memria virtual
Outro problema recorrente envolve a memria virtual. Historicamente, a memria de acesso aleatrio (RAM) foi centenas de vezes mais cara que o armazenamento mecnico rotativo, isto , discos rgidos, num computador moderno. O processador s pode executar uma instruo que esteja na memria real. O mecanismo de Memria Virtual divide a memria real em FRAMES e divide um arquivo no disco em PGINAS de mesmo tamanho dos frames. No disco existem muito mais pginas do que frames na memria. Sempre que for preciso uma pgina copiada da memria virtual (arquivo em disco) para um frame da memria real. Surge a necessidade de saber quando preciso copiar. Surge a necessidade de saber se um frame pode ser descartado ou se precisa ser recopiado para sua pgina correspondente no arquivo em disco. Sempre que uma instruo executada a partir de um frame o hardware controlador de memria virtual testa se o dado a que ela se refere j se encontra em algum frame. Se for o caso, uma interrupo ocorre para que a rotina de tratamento cuide de copiar do disco para a memria real uma pgina completa contendo o dado necessrio.
Ligaes externas
ISCA: Proceedings of the International Symposium on Computer Architecture [1] Micro: IEEE/ACM International Symposium on Microarchitecture [2] HPCA: International Symposium on High Performance Computer Architecture [3] ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems
[4]
ACM Transactions on Computer Systems [5] IEEE Computer Society [6] Microprocessor Report [7]
Referncias
[1] [2] [3] [4] [5] [6] [7] http:/ / portal. acm. org/ toc. cfm?id=SERIES416& type=series& coll=GUIDE& dl=GUIDE& CFID=41492512& CFTOKEN=82922478 http:/ / www. microarch. org/ http:/ / www. hpcaconf. org/ http:/ / portal. acm. org/ toc. cfm?id=SERIES311& type=series& coll=GUIDE& dl=GUIDE& CFID=41492415& CFTOKEN=3676847 http:/ / www. acm. org/ tocs/ http:/ / www. computer. org/ http:/ / www. mdronline. com/ mpr/
Desenvolvimento
Este um assunto muito vasto e, embora com alguma idade, s em 2001 se comeou a falar em padres para estas solues, que so utilizadas (em larga escala) geralmente nos meios cientficos e outros de clculo intensivo pela sua extensibilidade. So bastante flexveis, j que permitem a coexistncia de sistemas desenhados especificamente para isso (por exemplo, a arquitectura NUMA), de sistemas desktop, e mesmo de sistemas considerados obsoletos, mas no o suficiente para permitir a coexistncia de solues semelhantes. Antes de avanar, ser necessrio distinguir um sistema de multiprocessamento paralelo (SMP) de um sistema distribudo. Para um sistema ser de processamento distribudo, uma ou vrias unidades de processamento (CPU) estar separada fisicamente da(s) outra(s), enquanto que num sistema SMP todas as unidades de processamento se encontram na mesma mquina. Ambos sistemas so capazes de processamento paralelo, e qualquer um deles pode ser visto como elemento de um sistema distribudo! Com os desenvolvimentos nesta rea, surgiram solues por software que fazem, geralmente (mas no necessariamente), alteraes no ncleo do sistema operativo e que, na maioria dos casos, no so compatveis entre elas, e dificilmente entre verses diferentes da mesma soluo. Assentam, no entanto, em arquitecturas de comunicao padro, como o caso da Parallel Virtual Machine e Message Passing Interface. Resumidamente, estas arquitecturas conseguem transportar um processo (tarefa) e o seu contexto (ficheiros abertos, etc.) pela rede at outro n. O n que originou o processo passa, assim, a ser apenas um receptor dos resultados desse processo. Actualmente, a principal barreira destes sistemas implementar mecanismos de Inter-Process Communication (IPC), os Distributed IPC, dada a sua extrema complexidade.
Arquitetura
A Figura 1 ilustra as vrias camadas de interoperabilidade de um sistema distribudo. Atravs do gateway a rede pblica tem acesso a um supercomputador, sem ter conhecimento disso, dado que s conhece o gateway. Qualquer aplicao executada no gateway (preparada para ser paralelizada) pode ser distribuda por vrios ns, entregando os resultados mais rpido do que se fosse processada por apenas um n.
Solues
Software
Scyld (Beowulf) openMosix openSSI Open Source Cluster Application Resources (OSCAR)
Ligaes externas
Parallel Virtual Machine (PVM) [1] (em ingls) Message Passing Interface (MPI) [2] (em ingls) Centro Nacional de Processamento de Alto Desempenho (CENAPAD) - SP [3] Centro Baiano de Computao de Alto Desempenho (CEBACAD) [4]
Referncias
[1] [2] [3] [4] http:/ / www. csm. ornl. gov/ pvm/ pvm_home. html http:/ / www-unix. mcs. anl. gov/ mpi/ http:/ / www. cenapad. unicamp. br/ http:/ / www. cebacad. net
Sistema de ficheiros
Sistema de ficheiros
Sistema de ficheiros (portugus europeu) ou sistema de arquivos (portugus brasileiro) (tambm conhecida por gesto de ficheiros) a forma de organizao de dados em algum meio de armazenamento de dados em massa frequentemente feito em discos magnticos. Sabendo interpretar o sistema de arquivos de um determinado disco, o sistema operacional pode decodificar os dados armazenados e l-los ou grav-los. Fazendo analogias, tal organizao assemelha-se a uma biblioteca escolar. O bibliotecrio organiza os livros conforme o seu gosto, cuja busca, convenientemente, procura deixar mais fcil, sem ocupar muitas prateleiras e assegurando a integridade deste. Ainda, certamente, organiza os livros segundo suas caractersticas (assunto, censura, etc.). Depois de organizados, ou durante a organizao, o bibliotecrio cria uma lista com todos os livros da biblioteca, com seus assuntos, localizaes e cdigos respectivos.
Representao visual de um sistema de ficheiros, contanto com diretrios (pastas) e ficheiros (arquivos)
Aplicando a analogia informtica, o sistema operacional seria o bibliotecrio da "biblioteca de dados" do computador, o disco de armazenamento. Exatamente igual organizao de uma biblioteca, o sistema operacional guarda os dados nos espaos vazios do disco, rotulando-os com um FCB (File Control Block, Bloco de Controle de Arquivo) e ainda criando uma lista com a posio deste dado, chamada de MFT (Master File Table, Tabela de Arquivos Mestre). Sabendo a posio do arquivo a ser aberto/gravado, o sistema operacional solicita a leitura desta, decodifica/codifica e realiza a abertura/gravao do dado. Um sistema de ficheiro assim: uma forma de criar uma estrutura lgica de acesso a dados numa partio. Sendo assim, tambm importante referir que nunca poder ter dois ou mais tipos de sistemas de ficheiros (formatos) numa mesma partio. O MBR (Master Boot Record) um arquivo de dados interligado com a BIOS cuja importncia o reconhecimento do sistema de arquivos, como tambm na inicializao do sistema operacional. Para a maioria dos usurios, o sistema de arquivos o aspecto mais visvel de um sistema operacional. Ele fornece o mecanismo para o armazenamento online e o acesso relacionado tantos aos dados como aos programas do sistema operacional e de todos os usurios do sistema de computao. O sistema de arquivos consiste em duas partes distintas: uma coleo de arquivos, cada um deles armazenando dados relacionados, e uma estrutura de diretrios, que organiza e fornece informao sobre todos os arquivos do sistema. Alguns sistemas de arquivos tm uma terceira parte, as parties, utilizadas para separar fsica ou logicamente grandes colees de diretrios.
Sistema de ficheiros
Atributos de arquivos
Um arquivo possui certos outros atributos que variam de um sistema operacional para o outro, mas que normalmente so os seguintes: Nome: o nome simblico do arquivo a nica informao conservada em forma legvel pelas pessoas. Identificador: este rtulo nico, usualmente um numero, identifica o arquivo dentro do sistema de arquivo; o nome no legvel pelas pessoas. Tipos : esta informao necessria para aqueles sistemas que suportam diferentes tipos. Posio: esta informao um ponteiro para um dispositivo e para a posio do arquivo naquele dispositivo. Tamanho: o tamanho corrente o arquivo e possivelmente o tamanho maximo permitido esto includos neste atributo. Proteo: a informao de controlo de acesso determina quem pode ler o arquivo, grav-lo, execut-lo e assim por diante. Hora, data e identificao do usurio: estas informaes podem ser conservadas em relao a data da criao, ultima modificao e ultima utilizao do arquivo. Estes dados podem ser teis para proteo, segurana e monitoramento de uso do arquivo. A informao sobre todos os arquivos conservada na estrutura do diretrio que tambm reside em memria secundaria. A entrada de um diretrio consiste no nome do arquivo com seu identificador nico. O identificador, por sua vez, permite localizar os demais atributos do arquivo. O registro desta informao para cada arquivo pode ocupar mais que um kilobyte. Em um sistema com muitos arquivos o tamanho do prprio diretrio pode ocupar megabytes. Como os diretrios, da mesma forma que os arquivos, devem ser no-volateis, precisam ser armazenados em dispositivos e conduzidos memria gradativamente, conforme necessrio.
Sistema de ficheiros por outros arquivos, e apagamos a entrada do diretrio. Trocando um arquivo: o usurio pode desejar apagar o contedo de um arquivo, mas conservar seus atributos. Em lugar de obrigar o usurio a pagar completamente o arquivo e recri-lo, esta funo permite que todos os atributos - exceto o tamanho - sejam mantidos, reposicionando o arquivo com tamanho zero.
IBM (AIX, OS/2) JFS (AIX Version 3.1 ou superior, OS/2 Warp) HPFS - High Performance File System MS-DOS/Microsoft Windows FAT 12 - Microsoft BASIC Disk - MSDOS 4.0 FAT 16 ou FAT - DOS 4.0 ou superior / Windows 1.X ou superior (1.x, 2.x, 3.x, 95, 98, ME, 2000, XP,...) FAT 32 - MS-DOS 7.1 e 8.0 / Windows 95 (verso OSR2!), ou superior (95 OSR2, 98, ME, NT, 2000, XP...) ExFAT - FAT Estendido, tambm conhecido como FAT64, Windows XP ou superior ( Vista, 7...) NTFS - Windows NT ou superior (NT, 2000, XP, 2003 Server,...)
Ligaes externas
File Systems [1] (Microsoft) Filesystems HOWTO [2]
Referncias
[1] http:/ / www. microsoft. com/ resources/ documentation/ Windows/ 2000/ server/ reskit/ en-us/ Default. asp?url=/ resources/ documentation/ Windows/ 2000/ server/ reskit/ en-us/ prork/ prdf_fls_xhqo. asp [2] http:/ / www. tldp. org/ HOWTO/ Filesystems-HOWTO. html
Escalonamento de processos
Escalonamento de processos
O escalonamento de processos ou agendador de tarefas (em ingls scheduling) uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribudo, possibilitando executar os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos. O escalonador de processos de 2 nveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memria principal, ficando os outros alocados em disco; com essa execuo o processador evita ficar ocioso.
Tipos bsicos
Escalonador de curto prazo
Seleciona entre os processos em estado de pronto que esto na memria, para serem executados pelo processador. O escalonador de curto prazo faz decises de escalonamento muito mais frequentemente que os de mdio e longo prazo.
Definio
Para que a CPU no fique muito tempo sem executar tarefa alguma, os sistemas operacionais utilizam tcnicas para escalonar os processos que esto em execuo ao mesmo tempo na maquina. O escalonamento de processos uma tarefa complicada, pois nenhum algoritmo totalmente eficiente e a prova de falhas, principalmente em se tratando de sistemas interativos, como o Windows, pois a interao com o usurio fundamental para este sistema onde quem o utiliza procura respostas rpidas e a todo o momento processos so interrompidos pelo usurio. O escalonador do SO utiliza alguns critrios de escalonamento, como: a taxa de utilizao de CPU, que a frao de tempo durante a qual ela est sendo ocupada; throughput que so nmeros de processos terminados por unidade de tempo; turnaround que o tempo transcorrido desde o momento em que o software entra e o instante em que termina sua execuo; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua execuo; tempo de espera: soma dos perodos em que o programa estava no seu estado pronto. Responsveis por essa tarefa so algoritmos que so entendidos mais facilmente, estudados separadamente, mas na pratica os sistemas operacionais utilizam combinaes deles para melhor escalonar os processos.
Escalonamento de processos
10
Objetivos do Escalonamento
O projeto de um escalonador adequado deve levar em conta uma srie de diferentes necessidades, ou seja, o projeto de uma poltica de escalonamento deve contemplar os seguintes objetivos: Ser justo: Todos os processos devem ser tratados igualmente, tendo possibilidades idnticas de uso do processador, devendo ser evitado o adiamento indefinido. Maximizar a produtividade (throughput): Procurar maximizar o nmero de tarefas processadas por unidade de tempo. Ser previsvel: Uma tarefa deveria ser sempre executada com aproximadamente o mesmo tempo e custo computacional. Minimizar o tempo de resposta para usurios interativos. Maximizar o nmero possvel de usurio interativos. Minimizar a sobrecarga (overhead): Recursos no devem ser desperdiados embora algum investimento em termos de recursos para o sistema pode permitir maior eficincia. Favorecer processos "bem comportados": Processos que tenham comportamento adequado poderiam receber um servio melhor. Balancear o uso de recursos: o escalonador deve manter todos os recursos ocupados, ou seja, processos que usam recursos sub- utilizados deveriam ser favorecidos. Exibir degradao previsvel e progressiva em situaes de intensa carga de trabalho. Como pode ser visto facilmente, alguns destes objetivos so contraditrios, pois dado que a quantidade de tempo disponvel de processamento (tempo do processador) finita, assim como os demais recursos computacionais, para que um proceso seja favorecido outro deve ser prejudicado. O maior problema existente no projeto de algoritmos de escalonamento est associado natureza imprevisvel dos processos, pois no possvel prevermos se um dado processo utilizar intensamente o processador, ou se precisar grandes quantidades de memria ou se necessitar numerosos acessos aos dispositivos e E/S.
Qualidade do Escalonamento
Existem vrios critrios que permitem a avaliao da qualidade do servio oferecido por um algoritmo de escalonamento. So eles: uso do processador, throughput,tempo de resposta e tempo de permanncia. O tempo de permanncia, tempo de retorno ou turnaround time, um critrio simples dado pela soma do tempo de espera com o tempo de servio ou tempo de execuo. Em geral deseja- se que o tempo de permanncia seja o menor possvel. Uma outra forma de avaliar a qualidade do escalonamento utilizando-se do tempo de permanncia normalizado, ou seja, a razo entre o tempo de permanncia e o tempo de servio.
Algoritmos escalonadores
Existem os algoritmos preemptivos e os no preemptivos. Os preemptivos so algoritmos que permitem que um processo seja interrompido durante sua execuo, quer seja por fora de uma interrupo de entrada/sada, quer seja em decorrncia da politica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por fora do trmino da execuo do processo. Aps a interrupo deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o contedo dos registradores e a memoria utilizada pelo processo e conceder outro processo o privilgio de executar na CPU, restaurando assim o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos no preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato no ocorre, sendo cada programa executado at o fim.
Escalonamento de processos Exemplos de Algoritmos: FIFO (First in, first out) ou FCFS (First come, first served): Onde como seu prprio nome j diz, o primeiro que chega ser o primeiro a ser executado; SJF (Shortest Job First): Onde o menor processo ganhar a CPU e atrs do mesmo formar uma fila de processos por ordem crescente de tempo de execuo; SRT (Shortest Remaining Time): Neste algoritmo escolhido o processo que possua o menor tempo restante, mesmo que esse processo chegue metade de uma operao, se o processo novo for menor ele ser executado primeiro; Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o escalonamento sorteado um numero aleatrio para que o processo ganhe a vez na CPU, processos com mais tokens tm mais chance de receber antes a CPU. Escalonamento garantido: Este algoritmo busca cumprir promessas de alocao de CPU o mais preciso possvel. RR (Round-Robin): Nesse escalonamento o sistema operacional possui um timer, chamado de quantum, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU. Com exceo do algoritmo RR e escalonamento garantido, todos os outros sofrem do problema de Inanio (starvation). Mltiplas Filas: So usadas vrias filas de processos prontos para executar, cada processo e colocado em uma fila, e cada fila tem uma poltica de escalonamento prpria e outra entre filas. Todos os algoritmos classificam os processos em estados: Iniciando, Pronto, Executando, Entrada/ Sada e Terminado. Ainda existem vrios
11
Estados de processos
Para o sistema operacional organizar os processos que sero atendidos eles so atribudos estados para os mesmos.
Distribuio de Prioridades
Para melhorar essa distribuio da CPU entre os processos, alguns algoritmos utilizam diferentes prioridades, essas prioridades podem ser mudadas no Windows, por exemplo, pelo prprio usurio. Com intuito de gerenciar melhor as prioridades de processo, o sistema operacional cria filas de processos. Em cada fila existem processos de mesma prioridade, e existe tambm fila para processos de entrada e sada. Prioridades podem ser mudadas pelo usurio, ou atribudas automaticamente pelo sistema operacional em questo. Mesmo com a aplicao de prioridades e algoritmos melhor implementados, alguns processos ainda correm o risco de sofrer starvation (ficar muito tempo sem receber a CPU) por isso em determinando momento pode ocorrer o que chamamos de aging (O aging ocorre quando a prioridade de um processo vai se alterando com o "tempo de vida" do mesmo, controlando o starvation), que muda momentaneamente a prioridade de um processo que no executado h muito tempo e joga sua prioridade para a mais alta possvel para que ele seja atendido, logo aps as prioridades voltam ao normal. Outro caso em que prioridades so alteradas quando um programa de baixa prioridade comeou a fazer uso de algum perifrico de entrada e sada antes de outro de prioridade alta. Neste caso processos de alta prioridade so obrigados a esperarem os de baixa terminar sua E/S para poderem usar este perifrico.
Escalonamento de processos
12
Trocas de contexto
Processos so interrompidos e retomados a todo tempo, para que o sistema operacional possa fazer esse tipo de ao, necessrio a troca de contexto. Para que o sistema operacional possa interromper um processo e retomar ele mais tarde, ele usa a PCB (Process Control Block) para guardar todas as informaes que a CPU estava usando naquele momento e possa consulta-la mais tarde para que retome exatamente no ponto em que foi interrompido anteriormente.
Threads
Threads: Processos podem ser divididos em pedaos para que ele no deixe de responder por algum motivo externo, onde isto possa atrapalhar a execuo do mesmo, ou para agilizar a programao e execuo. Quando programas so divididos em threads, podemos ter partes do processo rodando em paralelo, threads tambm so escalonveis.
Ligaes externas
Scheduling algorithm [1] em ingls Process (computing) [2] em ingls Process states [3] em ingls Automated planning and scheduling [4] em ingls Dynamic priority scheduling [5] em ingls
Referncias
[1] [2] [3] [4] [5] http:/ / en. wikipedia. org/ wiki/ Scheduling_(computing) http:/ / en. wikipedia. org/ wiki/ Scheduling_algorithm http:/ / en. wikipedia. org/ wiki/ Process_states http:/ / en. wikipedia. org/ wiki/ Automated_planning_and_scheduling http:/ / en. wikipedia. org/ wiki/ Dynamic_priority_scheduling
Deadlock
13
Deadlock
Deadlock (interbloqueio, -blocagem, impasse), no contexto do sistemas operacionais (SO), caracteriza uma situao em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execues, ou seja, ficam bloqueados. Trata-se de um problema bastante estudado no contexto dos Sistemas Operacionais, assim como em outras disciplinas, como banco de dados, pois inerente prpria natureza desses sistemas. O deadlock ocorre com um conjunto de processos e recursos no-preemptveis, onde um ou mais processos desse conjunto est aguardando a liberao de um recurso por um outro processo que, por sua vez, aguarda a liberao de outro recurso alocado ou dependente do primeiro processo. A definio textual de deadlock normalmente, por ser muito abstrata, mais difcil de se compreender do que a representao por grafos, que ser resumida mais adiante. No entanto, algumas observaes so pertinentes: O deadlock pode ocorrer mesmo que haja somente um processo no SO, considerando que este processo utilize mltiplos threads e que tais threads requisitem os recursos alocados a outros threads no mesmo processo; O deadlock independe da quantidade de recursos disponveis no sistema; Normalmente o deadlock ocorre com recursos como dispositivos, arquivos, memria, etc. Apesar da CPU tambm ser um recurso para o SO, em geral um recurso facilmente preemptvel, pois existem os escalonadores para compartilhar o processador entre os diversos processos, quando trata-se de um ambiente multitarefa. Um exemplo onde erros de deadlock ocorrem no banco de dados. Suponha que uma empresa tenha vrios vendedores e vrios pontos de venda/caixas. O vendedor A vendeu 1 martelo e 1 furadeira. O sistema ento solicita o travamento do registro da tabela ESTOQUE que contm o total de martelos em estoque e em seguida solicita o travamento do registro que contm o total de furadeiras em estoque. De posse da exclusividade de acesso aos dois registros, ele l a quantidade de martelos, subtrai 1 e escreve de novo no registro, o mesmo com o registro de furadeiras. Observe, no entanto que existem diversos caixas operando simultaneamente de forma que se algum outro caixa naquele exato instante estiver vendendo um furadeira, ele ficar de aguardando a liberao do registro das furadeiras para depois alter-lo. Note que ele s altera os registro depois que for dada exclusividade para ele de TODOS os recursos que ele precisa, ou seja, de todos os registro. Suponha agora que em outro caixa a venda foram vendidos 1 furadeira e 1 martelo e que o outro caixa solicitou o travamento do registro com a quantidade de furadeiras e agora quer o acesso ao de martelos, no entanto o de martelos est travado para o primeiro caixa. Nenhum deles devolve o recurso (registro) sobre o qual tem exclusividade e tambm no consegue acesso ao outro registro que falta para terminar a operao. Isto um deadlock.
Deadlock Condio de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que est com o prximo membro da cadeia.
14
Exemplo de representao de deadlock em grafos de alocao de recursos, com dois processos A e B, e dois recursos R1 e R2.
Tratamento de deadlock
As situaes de deadlock podem ser tratadas ou no em um sistema, e cabe aos desenvolvedores avaliar o custo/benefcio que essas implementaes podem trazer. Normalmente, as estratgias usadas para detectar e tratar as situaes de deadlocks geram grande sobrecarga, podendo at causar um dano maior que a prpria ocorrncia do deadlock, sendo, s vezes, melhor ignorar a situao. Existem trs estratgias para tratamento de deadlocks: Ignorar a situao; Detectar o deadlock e recuperar o sistema; e Evitar o deadlock;
Deadlock Alm disso, o SO precisa verificar a ocorrncia da condio de espera circular nessas estruturas para a efetiva deteco do deadlock. Esse procedimento, por sua vez, gera outra sobrecarga, que pode ser mais intensa se no for definido um evento em particular para ser executado, como a liberao de um recurso, por exemplo. Assim, ou o SO verifica periodicamente as estruturas (o que no aconselhvel, pois pode aumentar consideravelmente o tempo de espera dos processos no-bloqueados), ou pode-se implementar uma poltica, onde o SO verifica as estruturas quando o mesmo realizar algum procedimento de manuteno do sistema, por exemplo. Finalmente, s aps detectar a presena do deadlock no sistema, o SO precisa corrigi-lo, executando um procedimento de recuperao. Quanto deteco do deadlock, vamos apresentar uma das tcnicas usadas para detectar a ocorrncia de deadlock em sistemas que possuem vrios recursos de cada tipo. Deteco de deadlock com vrios recursos de cada tipo O algoritmo de deteco de deadlock com vrios recursos de cada tipo baseia-se em um ambiente que possua vrios recursos do mesmo tipo e os processos solicitam apenas pelo tipo de recursos, no especificando qual recurso desejam utilizar. Assim, um processo pode requisitar uma unidade de CD para leitura. Se o sistema possuir duas, o processo pode utilizar a que estiver disponvel, em vez de especificar uma delas. Dessa forma, o processo solicita o recurso pelo tipo, sem discriminao. O algoritmo para essa deteco trabalha com duas variveis, trs matrizes unidimensionais (vetores) e duas matrizes bidimensionais, descritas a seguir: Estruturas: n: Varivel inteira. Representa a Quantidade de Processos Ativos; m: Varivel inteira. Representa a Quantidade de Tipos de Recursos; Matriz E = Matriz A = Disponveis; Matriz W = : Matriz unidimensional, de tamanho m. Representa a Matriz de Recursos Existentes; : Matriz unidimensional, de tamanho m. Representa a Matriz de Recursos Atualmente : Matriz unidimensional, de tamanho m. Representa uma Matriz Auxiliar, presente
15
somente para facilitar o clculo durante a execuo do algoritmo; Matriz C = : Matriz bidimensional, de tamanho n x m. Representa a Matriz de Alocao Corrente; Matriz R = : Matriz bidimensional, de tamanho n x m. Representa a Matriz de Recursos Requisitados. Faa (para preenchimento das estruturas): 1. Preencher a Matriz E com as quantidade de instncias de cada tipo de recurso; 2. Preencher a Matriz C com as quantidade de instncias de cada tipo alocadas aos processos, sendo que o somatrio de cada coluna da Matriz C deve ser menor ou igual quantidade do recurso correspondente na Matriz E (os processos nunca podem requisitar mais recursos que existentes no sistema); 3. Preencher a Matriz W com o resultado da subtrao da quantidade de cada recurso da Matriz E com o valor do somatrio de cada coluna do recurso correspondente da Matriz C, ou seja:
4. Preencher inicialmente a Matriz A com os valores da Matriz W. Note que: ; 5. Preencher a Matriz R com as prximas requisies dos processos, seguindo as mesmas regras da Matriz C. Faa (para deteco do deadlock): 1. Inicialmente, desmarcar todos os processos;
Deadlock 2. Para um processo Pi desmarcado, verificar se todos os elementos da linha i na Matriz R so menores ou iguais aos da Matriz A; 3. Se for, ento marque o execute o processo Pi e libere os recursos requisitados pelo processo na Matriz C (adicionar a linha i da Matriz C na Matriz A); 4. Retornar ao passo 2. A lgica do algoritmo a seguinte: cada processo considerado como apto a ser executado at que a deteco prove o contrrio. A deteco apenas verifica se os processos requisitam mais recursos do que esto disponveis, o que caracteriza um deadlock. Caso o processo requisite uma quantidade disponvel, ento ele pode ser executado, e os recursos que foram solicitados antes podem tambm ser liberados de volta ao sistema, o que pode permitir que outros processos tambm concluam suas execues e liberem os recursos. Um exemplo do preenchimento das matrizes encontra-se na figura abaixo, considerando-se n=2 e m=3.
16
Exemplo do preenchimento das matrizes do algoritmo de deteco de deadlock com vrios recursos de cada tipo.
Referncias na internet
Com relao a deteco de deadlock com vrios recursos, existe um software educacional online, o SISO 2.0, que permite simular a implementao desse algoritmo (SISO 2.0 - Simulador de Sistema Operacional [1]). Tratamento de situaes de deadlock [2] O que um deadlock [3]
Referncias
[1] http:/ / www. martins. eti. br/ 2009/ 03/ siso-20-simulador-de-sistema. html [2] http:/ / www-asc. di. fct. unl. pt/ ~jcc/ scpd-05-06/ Teoricas/ st1/ node31. html& e=10401 [3] http:/ / homepages. dcc. ufmg. br/ ~scampos/ cursos/ so/ aulas/ aula9. html
17
Segurana de Redes
Quanto segurana de redes as seguintes medidas de segurana devem ser tomadas: uso da criptografia no envio de dados, monitoramento do sistema, cuidados com a criao de novos usurios e uso de firewall, pois o firewall um sistema desenvolvido para prevenir acessos no autorizados a uma rede local de computadores. Os firewalls so implementados atravs de programas de computador e dispositivos eletrnicos. Atravs dele, os dados que entram ou saem da rede so examinados com a finalidade de bloquear os dados que no esto de acordo com os critrios de segurana. Apenas usurios autorizados podem ter acesso rede e dentro da rede, eles s podem ter acesso aos recursos realmente necessrios para a execuo de suas tarefas. Sendo que os recursos crticos devem ser monitorados e seu acesso restrito a poucas pessoas..
18
Segurana Fsica
importante a segurana fsica dos computadores. Deve-se avaliar o grau de segurana proporcionado aos recursos envolvidos no ambiente de sistemas em relao s ameaas externas existentes, como o caso de um sinistro ou de um incndio. O ambiente onde os servidores ficam deve ter restrio de acesso fsico, limpeza e organizao, dispositivos para monitoramento vinte e quatro horas por dia e equipamentos de combate a sinistros. A infra-estrutura para os servidores deve contar com rede eltrica estabilizada e cabeamento estruturado. As estaes de trabalho devem ter moblia adequada, equipamentos protegidos com lacres ou cadeados, limpeza e configurao compatvel com a carga de trabalho.
19
20
Licena
21
Licena
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/