Bruno Ribeiro da Silva. A adaptação de um sistema operacional para a execução em uma diferente arquitetura

Documentos relacionados
Bruno Ribeiro da Silva. O port de um sistema operacional: uma abordagem ao port do Minix 3 para o Nintendo DS (Rascunho)

Algoritmos e Lógica de Programação Componentes e Arquitetura

Sistemas Operacionais. Visão Geral

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

CP Introdução à Informática Prof. Msc. Carlos de Salles

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017

Sistemas Operacionais. Sistema de entrada e Saída

Softwares, Aplicativos e Sistemas Operacionais

Unidade I. Organização de Computadores. Prof. Renato Lellis

Cap. 12 Gerência de Dispositivos 1

ALP Algoritmos e Programação. . Um modelo de Computador

Professor: M. Sc. Cristiano Mariotti

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade.

AGT0001 Algoritmos Aula 01 O Computador

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Introdução à Computação

SSC0640 Sistemas Operacionais I

SISTEMAS OPERACIONAIS

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Programação de Computadores I - PRG1 Engenharia Elétrica

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Linguagens de Programação

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Sistemas Operacionais. Adão de Melo Neto

Sistema Computacional

Introdução à Programação de Computadores Fabricação Mecânica

Fundamentos de Informática Introdução aos Conceitos Básicos

Introdução a Informática

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Conceitos sobre Computadores

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

Organização de Computadores I

Fundamentos da Informática e Manutenção de Computadores. Professor: Orlando Filho Graduação: Sistemas de Informação

Sistemas Operacionais

Conceitos computacionais

Apresentação. Prof.: Roitier Campos Gonçalves

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

Sistemas de Entrada e Saída

Introdução à Informática Engenharia Agrícola

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Sistemas Operacionais. Conceitos de Hardware

1) Considere a situação atual da memória do sistema computacional abaixo discriminada.

Introdução. (Aula 2) Organização Estruturada de Computadores

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

Sistemas Operacionais

SOP Sistemas Operacionais Módulo 02: Motivação / Conceitos Básicos / Classificação

Informática Aplicada. Introdução

-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida. Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça

História dos Computadores

Modelo de Von Neumann: conceito do programa armazenado

Dr. Joaquim de Carvalho Figueira da Foz

Arquitetura de Computadores

Informática Básica e Aplicativos de Escritório

Sistemas Operacionais

Sistemas Operacionais

Universidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação

Introdução à Informática O COMPUTADOR

LISTA DE EXERCÍCIOS 01 INTRODUÇÃO À INFORMÁTICA

Estrutura do Sistema Operacional

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Arquiteturas RISC e CISC. Adão de Melo Neto

Projeto de Algoritmos

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Informática Básica e Aplicativos de Escritório

Curso: Redes de Computadores

Estrutura de um computador digital. Gustavo Queiroz Fernandes

Introdução à Computação: Máquinas Multiníveis

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

Sistemas Operacionais

Aula 05. Fundamentos de Hardware e Software. Prof. Dr. Dilermando Piva Jr.

1.Introdução capaz de executar uma sequência de instruções definidas pelo homem gerar um determinado resultado

INFORMÁTICA. Professor: Venicio Paulo Mourão Saldanha Site:

Sistema Computacional. Prof. Carla Plantier Prof. Marcelo Zorzan

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Sistemas Digitais e Arquitectura de Computadores

Arquitetura de Computadores

Tecnologias da Informação e da Comunicação

Informática básica. Professor: Francisco Ary

Sistemas Operacionais (SO)

Gerência de Dispositivos. Adão de Melo Neto

Introdução aos Sistemas Operacionais

Sistemas Operacionais

LINUX X SOFTWARE LIVRE

Informática Básica. Conceitos Básicos

COMPONENTES CENTRAIS DO SISTEMA OPERACIONAL. Prof. Eduardo H. S. Oliveira

SOP Sistemas Operacionais Módulo 04: Processo

Informática Básica CONCEITOS DE HARDWARE. Msc. Eliezio Soares

Algoritmos Computacionais

Sistemas Operacionais

Conceitos básicos sobre computadores

UNIVERSIDADE PEDAGÓGICA ESCOLA SUPERIOR TÉCNICA - ESTEC

Sistemas Digitais e Arquitectura de Computadores (SDAC) 12º ano

Prof. Sandro Wambier

Transcrição:

Bruno Ribeiro da Silva A adaptação de um sistema operacional para a execução em uma diferente arquitetura Universidade Federal de Santa Catarina Florianópolis, Fevereiro de 2007

1 Bruno Ribeiro da Silva A adaptação de um sistema operacional para a execução em uma diferente arquitetura. Proposta inicial ao trabalho de conclusão de curso apresentado ao curso de Ciências da Computação da Universidade Federal de Santa Catarina como requisito na obtenção do título de Bacharel. Orientador: Luís Fernando Friedrich Florianópolis, 2007

2 RESUMO Os sistemas operacionais são peças chave na utilização de um computador, são eles que nos fornecem o acesso aos dispositivos contidos no mesmo. O principal componente de um computador é sua unidade central de processamento. É ela que executa todas as instruções lógicas de um sistema operacional. Este trabalho aborda a adaptação de um sistema operacional e sua reprogramação para a execução sobre um diferente processador. Tratando dos segmentos de código de um sistema operacional que são extremamente dependentes do conjunto de instruções do processador. Palavras chave: sistemas operacionais; processador.

3 SUMÁRIO 1. INTRODUÇÃO... 4 2. MOTIVAÇÃO... 5 3. OBJETIVOS... 7 3.1 Objetivos gerais... 7 3.2 Objetivos específicos... 7 4. METODOLOGIA... 8 5. CRONOGRAMA... 9 6. REFERÊNCIAS BIBLIOGRÁFICAS... 10

4 1. Introdução Os computadores hoje são ferramentas indispensáveis, tanto para trabalhos que necessitem da interação humana como para trabalhos que precisem de autonomia. A maneira de como os computadores operam segue um determinado padrão, é necessário um hardware 1 específico e uma camada de software 2 que nos permite a execução de softwares terceiros. Esta camada intermediária de software que nos possibilita a utilização de todos os componentes de hardware contidos em um computador é chamada de sistema operacional. Um sistema operacional fornece um ambiente no qual o usuário possa executar seus programas de maneira que ele não precise se preocupar em como manipular os componentes de hardware. Seu objetivo principal é, então, prover a utilização de um computador de forma mais eficiente e mais conveniente, Oliveira (2004, p. 2). Por advento da arquitetura de um computador permitir que possamos agregar novos componentes, sejam eles de diferentes fabricantes, modelos e com suas características próprias, surge um problema no desenvolvimento dos sistemas operacionais que é: como fazer para que um sistema operacional possa lidar com os diferentes dispositivos e até mesmo os que no futuro possam vir a ser construídos? O principal componente em um computador é a sua unidade central de processamento (UCP) vulgarmente chamado de processador, é ele quem executa todas as operações lógicas e é sobre ele que um sistema operacional executa suas instruções. Com foco na pergunta anteriormente feita, levanta se uma outra questão, como é que um sistema operacional então pode ser desenvolvido de forma que ele possa executar suas instruções em um diferente processador? Como é que isto pode ser feito de maneira eficiente? De que maneira é possível estruturar o sistema de modo que ele possa ser reprogramado facilmente para outro processador? Estes são os objetivos fundamentais deste projeto. 1 Hardware: conjunto de componentes físicos (material eletrônico, placas, monitor, equipamentos periféricos e etc.) de um computador. Houaiss (2001). 2 Software: programa, rotina ou conjunto de instruções que controlam o funcionamento de um computador. Houaiss (2001).

5 2. Motivação Com a rápida evolução no campo da informática a todo tempo novas tecnologias são criadas e consequentemente não é possível sempre seguir um padrão, já que os mesmos se tornam obsoletos e fonte de impedimento a novas abordagens. Os processadores por toda sua história sempre tiveram características diferentes entre si, no entanto entre um mar de diferentes modelos, fabricantes e modos de operação, em sua maioria estiveram separados em duas distintas filosofias de design, os Reduced Instruction Set Computer (RISC), esses com um conjunto de intruções reduzidas de maneira a simplificar a sua operação e obter maior velocidade no cômputo das operações, e os Complex Instruction Set Computers (CISC), que como no nome possuem um conjunto complexo de instruções. Desde a criação dos primeiros computadores o ser humano já pensava em como tornar sua utilização eficaz, seja através da criação de novos dispositivos, como os de armazenamento e memória, ou então através de softwares que automatizassem processos que eram necessários toda a vez que algum usuário quisesse executar algum software. Da evolução destes softwares de automação dos computadores que surgiram os sistemas operacionais. Responsáveis pelo controle de todos os dispositivos de um computador e por permitir de maneira fácil a sua utilização, os sitemas operacionais rapidamente ganharam popularidade. Eles foram desenvolvidos para as mais diversas finalidades e para diferentes computadores. Definido então por Silberschatz (2000, p. 4) Um sistema operacional é semelhante a um governo. Os componentes de um sistema de computação são seu hardware, software e dados. O sistema operacional fornece o meio para o uso adequado desses recursos na operação do sistema de computador. Como um governo, o sistema operacional não executa nenhuma função útil por si mesma. Simplesmente forncece um ambiente no qual outros programas podem realizar tarefas úteis. Os sistemas operacionais atuais são desenvolvidos em linguagens de programação de alto nível focando o rápido desenvolvimento e maior portabilidade 3, no entanto, algumas partes sensíveis do sistema operacional precisam ser programadas diretamente em linguagem de máquina (assembly) para que não haja uma perda muito grande no desempenho do sistema. 3 Portabilidade: capacidade de ser portável, no âmbito da computação portar um software significa adaptálo/reprogramá lo de maneira que o mesmo possa ser executado em um diferente ambiente computacional.

6 Ainda que os sistemas operacionais sejam grandes apenas uma pequena parte é crítica quanto ao desempenho, o gerenciador de memória e o escalonador de processos são provavelmente as rotinas mais críticas, Silberschatz (2000, p.57). Um outro conjunto de rotinas que necessitam em parte de programação em linguagem assembly são os drivers de dispositivos, são eles que fazem a comunicação direta com os periféricos de um computador: placa de vídeo, webcam, mouse, teclado, etc. Este projeto então se baseia na escolha de um sistema operacional e um hardware o qual o sistema não possua suporte à execução, e adaptar as partes sensíveis à linguagem de um processador específico de modo que o sistema possa adquirir uma maior portabilidade. Como prova de conceito após a adaptação do sistema escolhido realizar sua reprogramação para o hardware escolhido. Os resultados desejados do projeto se justificam na suma importância das partes diretamente dependentes de hardware apontadas no decorrer dos estudos realizados no sistema escolhido, e que os mesmos resultados possam ser adotados na busca de estratégias em uma atividade de adaptação de um sistema operacional qualquer.

7 3. Objetivos 3.1 Objetivos gerais O principal objetivo do projeto é prover a adaptação de um sistema operacional para que o mesmo possa ser reprogramado para um hardware ainda não suportado pelo sistema. Em busca deste objetivo principal serão estudadas as partes do sistema que dependem diretamente do hardware do computador, serão também estudadas as melhores abordagens para a adaptação dessas partes de maneira que elas ganhem portabilidade. 3.2 Objetivos específicos Estudar todo o funcionamento do sistema escolhido e realizar análise sobre as partes dependentes do hardware selecionado para a prova de conceito. Estudar o conjunto de instruções e a arquitetura do processador escolhido. Adaptar o sistema escolhido. Reprogramar o sistema escolhido para o conjunto de intruções específicas ao processador escolhido.

8 4. Metodologia Através do sistema operacional Minix em sua versão 3, para arquitetura x86 (CISC), serão realizados os estudos necessários à sua adaptação e sua posterior reprogramação para uma outra arquitetura. A arquitetura em questão a ser suportada pelo Minix em conclusão do projeto é o processador OpenSPARC, que é de filosofia RISC, possuindo um conjunto de instruções reduzidas e que possui em disponibilidade uma gama de ferramentas no auxílio do processo de programação, tanto quanto em documentação sobre sua arquitetura. Será então realizada a adaptação e reprogramação de um sistema operacional de uma máquina CISC para uma máquina RISC. Necessariamente serão utilizadas ferramentas específicas referentes aos processos de geração e execução do sistema. Essas ferramentas supra citadas constituem se de compiladores, ligadores, emuladores de arquitetura, depuradores, etc. O sistema operacional adotado como ferramenta de pesquisa e execução do projeto é um sistema GNU/Linux, este por fornecer a estrutura necessária ao desenvolvimento do projeto.

9 5. Cronograma 1. Março Abril de 2007 Estudo do sistema operacional Minix. 2. Maio Junho de 2007 Estudo da arquitetura e conjunto de instruções do OpenSPARC. 3. Julho Agosto de 2007 Adaptação do Minix. 4. Setembro Outubro de 2007 Reprogramação do Minix para a arquitetura do OpenSPARC. Finalização do projeto.

10 6. Referências bibliográficas OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas Operacionais. 3. ed. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto, 2004. 274 p. SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas operacionais: conceitos e aplicações. Tradução de Adriana Ceschin Rieche. 1. ed. Rio de Janeiro: Campus, 2000. 585 p. Título original: Applied operating system concepts. INSTITUTO ANTÔNIO HOUAISS. Dicionário eletrônico Houaiss da língua portuguesa. Versão 1.0. Editora Objetiva, 2001. 1 CD ROM.