Conceito de Sistema Operativo
Um sistema operativo consiste num conjunto de programas que interagem directamente com o computador, descrito segundo uma determinada arquitectura funcional.
Caracteristicas e funções do Sistema Operativo
Um sistema Operativo desempenha as seguintes funções :
Gestão
de recursos
- Contexto: Ambiente de vários utilizadores em competição pela utilização dos recursos
- Soluções: Maximizar a utilização e a partilha de tempo (de CPU, memória central e de cache, memória secundária, suporte de entradas/saídas
Aumentar
a disponibilidade e a eficiencia da arquitectura do computador do ponto de
vista dos utilizadores
Criação de uma máquina virtual
Nível de abtracção relativamente á
arquitactura fisica do computador, criando ao
utilizador a noção de dispor de uma máquina individual
Colocar á disposição do utilizador um
ambiente mais fácil de utilizar
Memória : - divisão e gestão
estruturada de parte da hierarquia de memória
(cache, principal e
secundário) em segmentos ou páginas, possibilitando a execução de um programa
mesmo que possua uma dimensão superior á da memória principal.
Conceito de memória virtual
Sistemas de ficheiros: - Armazenamento de
dados e programas na hierarquia de memória secundária, por forma a que possam ser
acedidos através de nomes simbólicos.
Estrutura em árvore:
C:\usr\local\README.txt (MS-DOS)
/usr/local/README.txt (UNIX)
Protecção e tratamento de erros:
-Idealmente, a máquina virtual deve prevenir todas as situações de erro por
causas internas ou externas á máquina (tarefa impossivel)
Fornecer protecção de uns
utilizadores relativamente aos outros
Defender os recursos priviligiados do
Sistema Operativo
Interacção entre programas:
-disponibilizar mecanismos de cooperação entre diferentes programas (Sincronização)
Troca de mensagens entre processos
(comunicação)
Interacção utilizador-computador:
-definição de uma linguagem de comandos:
command.com, windows 95/NT (MS_DOS)
shel, c-shell, x windows (UNIX)
Tipos de Sistema Operativo
Sistemas dedicados
Monoutilizador
-máquina virtual para um único utilizador
-recursos mínimos: -interpretador de comandos, sistema de ficheiros simples, unidades de E/S para monitor e disco
-ex: -zx-spectrum, cp/ms-dos
Controlo de processos (tempo
real)
-Sistemas que garantem a estabilidade de processos
-ex: controlo industrial, piloto automático num avião
Processamento de transacções
-sistemas centralizados que se caracterizam pela capacidade de processar milhares de acessos por segundo
-ex: bancos, seguradoras, reservas de uma companhia aérea
Sistemas de uso geral
Caracterizados por um grande número de
utilizadores, realizando tarefas distintas em ritmo contínuo, isto é comutando o CPU de
tarefa em tarefa
Cada tarefa é lançada por um utilizador
e pode consistir num ou mais programas executáveis
Suportam uma grande variedade de programas
-compiladores, assembladores, depuradores, editores, etc.
- reconhece um grande número de dispositivos de E/S
Sistemas
por lotes
Tratamento de uma tarefa de cada vez, a
qual monopoliza o CPU até terminar a execução
Sistemas
multi-utilizador
Criação de uma máquina virtual para
cada utilizador, oferecendo a ilusão de
disponibilização de
recursos e atenção permanente a todos eles
Sistemas
distribuidos
Criação de máquinas virtuais sobre uma
rede local (LAN), metropolitana (MAN) ou de âmbito alargado (WAN)
Exemplos de Sistemas Operativos
1- UNIX | 2-LINUX | 3-AMIGA | 4-SOLARIS | 5-AMSTRAD |
6-GNEISS7 | 7- THEOS | 8- OS/2 WARP CLIENT | 9-OS/2 WARP SERVER | 10- MS-DOS |
11-WINDOWS '95 | 12- WINDOWS NT | 13- WIN. NT WORKSTATION | 14-WINDOWS NT SERVER | 15-NETWARE |
16- AIX | 17-APPLE II | 18-VMS | 19-Java OS | 20-VM |
21- OS/400 | 22-MAC OS | 23-MAC OS X SERVER | 24-BEOS | 25-PC DOS |
26-GNU | 27-DEBIAN | 28-AEGIS/EXO-KERNEL | 29-AIOS | 30-ALPHA KERNEL |
31-AMOEBA | 32-ANGEL | 33-APERTOS | 34-BPMK | 35-BSD/OS |
36-Aegis/Exo-Kernel | 37-C Executive and PSX | 38-Cache kernel | 39-Chimera | 40-Choices |
41-Choices | 42-COSY | 43-EROS | 44-Flux | 45-FreeBSD |
46-Fox | 46-GLUnix | 47-Grasshopper | 48-GUIDE | 49-Harmony |
50-Helios | 51-Hive | 52-HURD | 53-Hurricane | 54-Inferno |
55-ITRON | 56-Kea | 57-KeyKOS | 58-Lites | 59-Lynx |
60-Mach at OSF | 61-Mach-US | 62-Maruti | 63-Masix | 64-Merlin |
65-MetaOS | 66-MOSIX | 67-Mungi | 68-Nemesis | 69-NetBSD |
70-Oberon | 71-Opal |
Descrição de alguns Sistemas Operativos
UNIX is an operating system that originated at Bell Labs in 1969 as an interactive time-sharing system. Ken Thompson and Dennis Ritchie are considered the inventors of UNIX. The name (pronounced YEW-nihks) was a pun based on an earlier system, Multics. In 1974, UNIX became the first operating system written in the C language. UNIX has evolved as a kind of large freeware product, with many extensions and new ideas provided in a variety of versions of UNIX by different companies, universities, and individuals. Partly because it was not a proprietary operating system owned by any one of the leading computer companies and partly because it is written in a standard language and embraced many popular ideas, UNIX became the first open or standard operating system that could be improved or enhanced by anyone. A composite of the C language and shell (user command) interfaces from different versions of UNIX were standardized under the auspices of the IEEE as the Portable Operating System Interface (POSIX). In turn, the POSIX interfaces were specified in the X/Open Programming Guide 4.2 (also known as the "Single UNIX Specification" and "UNIX 95"). Version 2 of the Single UNIX Specification is also known as UNIX 98. The "official" trademarked UNIX is now owned by the The Open Group, an industry standards organization, which certifies and brands UNIX implementations. UNIX operating systems are used in widely-sold workstation products from Sun Microsystems, Silicon Graphics, IBM, and a number of other companies. The UNIX environment and the client/server program model were important elements in the development of the Internet and the reshaping of computing as centered in networks rather than in individual computers. Linux, a UNIX derivative available in both "free software" and commercial versions, is increasing in popularity as an alternative to proprietary operating systems.
Linux® (pronounced LIH-nucks) is a UNIX®-like operating system created in the early nineties by Linus Torvalds with the assistance of numerous developers around the world. Linux is publicly available for download on the Internet at no cost and the source code is open to developers. The term Linux refers technically only to the kernel or core operating system, but has come to describe the complete operating system and suite of applications. Linux strives for POSIX compliancy (a set of standards defining a UNIX) to stay compatible with other UNIX-like operating systems. AMIGA
The Amiga's operating system is old, and has had almost no official updates for over four years.
Windows 95 is the easiest way to a 32-bit desktop with a reduced set of hardware requirements, comprehensive compatibility, and easy installation. Windows 95 makes everything you do on a PC easier, faster, and more fun - whether you use your computer to.Windows NT is an excellent choice for any organization that wants to increase productivity and reduce the total cost of ownership for desktop operating systems.
Aegis/Exo-kernel
(Massachusetts Institute of Technology)
The Aegis kernel is built around the idea of an exo-kernel. An
evolution from micro-kernels, exo-kernels export a virtual machine that securely
multiplexes resourses among mutually distrusting spplications. The exo-kernel philosophy
tries to export as few abstractions besides the basic hardware abstractions as possible,
and to implement as little policy in the kernel as possible. Like SPIN, Aegis relies on
techniques such as downloading code into the kernel to make the system fast.
AIOS
The AIOS project is aimed toward developing a new computer operating system based on
artificial intelligence.
Amoeba (Vrije Universiteit)
Amoeba is a powerful micro-kernel-based system that turns a collection of
workstations or single-board computers into a transparent distributed system. It has been
in use in academia, industry, and government for about 5 years.
Angel (City University of London)
Angel is designed as a generic parallel and distributed operating system, although it is
currently targeted towards a high-speed network of PCs. This model of computing has the
dual advantage of both a cheap initial cost and also a low incremental cost. By treating a
network of nodes as a single shared memory machine, using distributed virtual shared
memory (DVSM) techniques, we have addressed both the needs for improved performance and
provided a more portable and useful platform for our applications.
BE OS
Be is a new multithreaded, multiprocessor microkernel OS that has been designed from the
ground for multimedia applications. It currently runs on the Intel and some PowerPC
platforms. [ Everything I've heard about Be sounds really good. Everyone who uses it seems
to be very impressed - Patrick ]
BSD/OS
BSD/OS is a commercial BSD 4.4-based UNIX operating system for the x86 PC. This is
where many of the Berkeley CSRG people went after BSD UNIX research ended at Berkeley. A
commercial-quality UNIX implementation with all of the bells and whistles one expects from
a modern UNIX system.
C Executive and PSX
C EXECUTIVE is a operating system kernel for embedded applications - providing a small,
efficient, real-time software environment for programs written in C. C EXECUTIVE, as small
as 5 KB in ROM space, is available on 8-, 16- and 32-bit CISC and RISC processors,
providing the foundation for a common, corporate-wide, portable software strategy. PSX
provides a single-user, single-group, subset of POSIX.1, with up to 32,000 preconfigured
processes. PSX adds a substantial subset of the POSIX.1 system calls to the basic C
EXECUTIVE kernel. Using these calls allows applications to migrate from POSIX-conformant
UNIX platforms to board-level systems, or vice versa.
Cache kernel (Stanford University Distributed Systems Group)
The supervisor-mode component of the V++ operating system. The Cache Kernel caches
operating system objects such as threads and address spaces just as conventional hardware
caches memory data. User-mode application kernels handle the loading and write-back of
these objects, implementing application-specific management policies and mechanisms.
Chimera (Carnegie Mellon University)
The Advanced Manipulators Laboratory, at Carnegie Mellon University, has developed the
Chimera Real-Time Operating System, a next generation multiprocessor real-time operating
system (RTOS) designed especially to support the development of dynamically reconfigurable
software for robotic and automation systems. Version 3.0 and later of the software is
already being used by several institutions outside of Carnegie Mellon, including
university, government, and industrial research labs.
Choices (University of Illinois,
Urbana-Champaign)
Choices is written as an object-oriented operating system in C++. As an object-oriented
operating system, its architecture is organized into frameworks of objects that are
hierarchically classified by function and performance. The operating system is customized
by replacing subframeworks and objects. The application interface is a collection of
kernel objects exported through the application/kernel protection layer. Kernel and
application objects are examined through application browsers
Chorus (Sun
Microsystems)
CHORUS is a family of open micro-kernel-based operating system components to meet advanced
distributed computing needs in areas such as telecommunications, internetworking, embedded
systems, realtime, "mainframe UNIX", supercomputing and high availability. The
CHORUS/MiX multiserver implementations of UNIX allow to dynamically integrate part or all
of standard UNIX functionalities and services in the\ above application areas.
COSY (University of
Karlsruhe, University of Paderborn)
Cosy is an operating system for highly parallel computers, with hundreds or thousands of
processors. All parts of the system are designed to scale up with the number of
processors, without any one becoming a bottleneck.
EROS (University
of Pennsylvania)
EROS (Extremely Reliable Operating System) is a new operating system being implemented at
the University of Pennsylvania. The system merges some very old ideas in operating systems
with some newer ideas about scheduling and performance. The result is a small, secure,
high-performance operating system that provides transparent orthogonal persistence coupled
with microkernel-style critical paths, including a high performance IPC subsystem.
Flux (University
of Utah)
The Flux Project's objective is to develop a nanokernel-based decomposed operating system
that achieves high performance while retaining inter-component protection and rich
functionality. Such a system will overcome the performance/protection and
performance/functionality tradeoffs that thwart traditional micro-kernel-based operating
systems. This objective includes integration of selected research results of others, and
free distribution of an unencumbered and usable version of the entire system.
FreeBSD
FreeBSD is one of several free, monolithic BSD 4.4-lite derivative operating systems. It
provides full UNIX support, including networking, X Windows, and almost all other normal
UNIX services.
GLUnix (University of California,
Berkeley)
Currently, modern workstation operating systems do not provide support for efficient
distributed program execution in an environment shared with sequential applications. The
goal of our research is to pool resources in a NOW to provide better performance for both
parallel and sequential applications. To realize this goal, the operating system must
support gang-scheduling of parallel programs, identify idle resources in the network,
allow for process migration to support dynamic load balancing, and provide support for
fast inter-process communication.
Grasshopper (University of
Sydney)
Despite the fact that the basic idea behind orthogonal persistence is very simple,
research groups are finding it extremely hard to develop scalable and efficient persistent
stores. One of the major difficulties derives from the fact that persistence provides a
fundamentally different model of computing from that supported by conventional operating
systems. In this project we are investigating the requirements of an operating system to
support persistence and propose to design and construct a new operating system, known as
Grasshopper, which has explicit support for persistent systems.
GUIDE
Guide (Grenoble Universities Integrated Distributed Environment) is an object-oriented
distributed operating system for the development and operation of distributed applications
on a local area networks connecting workstations and servers. Guide is a joint project of
Bull and the IMAG Research Institute (Universities of Grenoble), which have created the
Bull-IMAG joint Research Laboratory. It also has strong links with the COMANDOS Esprit
Project (Construction and Management of Distributed Open Systems) and the BROADCAST Esprit
Basic Research project.
Harmony (National Research
Council of Canada)
Harmony is a multitasking, multiprocessing operating system for realtime control,
developed at the National Research Council to serve a need for a flexible system for
realtime control of robotics experiments and for other applications of embedded systems
where predictable temporal performance is a requirement. Harmony is extensible,
configurable and portable, both across different target computers (typically assembled
from single-board computers), and across different development hosts.
Helios (Perihelion Distributed
Software)
Helios is a micro kernel operating system for embedded and multiprocessor systems. The
operating system is modular in design and can scale from an embedded runtime executive up
to a fully distributed operating system.
Hive (Stanford University
Flash Project)
The Hive OS Team is designing an operating system that is able to operate effectively in a
traditional supercomputer environment as well as in a general-purpose, multiprogrammed
environment. The latter environment poses significant challenges since general-purpose
environments typically contain large numbers of processes making many system calls and
many small I/O requests.
HURD (Free Software Foundation GNU
Project)
The HURD is the operating system being developed by the Free Software Foundation as the
basis for the GNU Project, which has already produced such well known tools as Emacs and
GCC. The Hurd is a personality for the Mach micro-kernel which exports a bevy of services
to the application. The Hurd will provide the standard UNIX interface, but should also be
much more flexible than standard UNIX.
Hurricane
The Hurricane operating system is a hierarchically clustered operating system implemented
on the Hector multiprocessor. Hierarchical clustering manages the system resources in
clusters, using tight coupling within a cluster, and loose coupling across clusters.
Distributed systems principles are applied by distributing and replicating system services
and data objects to increase locality, increase concurrency, and to avoid centralized
bottlenecks, thus making the system scalable.
Inferno
Inferno(tm) is a new network operating system and programming environment to deliver
content in a rich environment of heterogenous networks, clients and servers. The Inferno
system includes the Inferno kernel, the Limbo(tm) programming language, reference APIs
that include interfaces for networking and graphics, network protocols, security and
authentication, and various toolkits. Inferno was developed by members of the Computing
Sciences Research Center of Bell Laboratories, the research arm of Lucent Technologies.
ITRON
ITRON (industrial TRON) is a real-time operating system specification for embedded
systems. Many products have been developed based on the ITRON specifications. ITRON is a
de-fact standard operating system specification in Japan for consumer applications.
Kea (University of British
Columbia)
Kea is an operating system architecture designed to provide the applications running on
top of it with the ability to dynamically replace parts of the system. Don't like your
file-systems buffering policy? Write your own, the system will replace it for your
application! Of course, there are lots of research and design issues over how we do this
on a fine-grained scale, whilst maintaining system integrity and efficiency.
KeyKOS
KeyKOS is an operating environment for S/370 computers which provides a high level of
security, reliability, performance, and productivity. It allows emulation of other
environnzens such as VM, MVS, and POSIX. Development of KeyKOS ceased in 1990. Many of the
ideas of this system have been carried forward into EROS
Lites
Lites is a 4.4 BSD Lite based server and emulation library that provides free unix
functionality to a Mach based system. Lites provides binary compatibility with 4.4 BSD.
NetBSD (0.8, 0.9, and 1.0), FreeBSD (1.1.5 and 2.0), 386BSD, UX (4.3BSD) and Linux on the
i386 platform. It has also been ported to the pc532, and PA-RISC. Preliminary ports to the
R3000 and Alpha processors have also been made.
Lynx (Lynx Real-time Systems)
LynxOS is a proprietary UNIX-like real-time operating system. LynxOS looks and feels like
UNIX from the user/programmer point of view. It was developed from the ground-up with high
performance, deterministic hard real-time response in mind. Although LynxOS is conformant
with POSIX 1003.1 it is not derived from any AT&T/USL/Novell source code. The OS is in
effect a complete re-implementation of UNIX from a real-time perspective.
Mach (Carnegie Mellon University)
Mach is one of the giants in the operating systems research community. Originally started
at CMU, Mach has become the basis for many research systems. Although work on Mach at CMU
has largely stopped except real-time work and multi-server work, many other groups are
still using Mach as the basis for research.
Mach at OSF (OSF Research
Institute)
The OSF Research Institute is using the Mach technology started at CMU and is using it as
the basis for several areas of research, including operating systems for parallel
machines, trusted object-oriented kernels, and other OS research areas.
Mach-US (Carnegie
Mellon University)
The Mach-US system is an OS developed as part of the CMU MACH project. It is
comprised of a set of servers, each of which supports orthogonal system services. For
example, instead of one server supplying all of the system services as under the Mach
BSD4.3 single server (UX), the Mach Multiserver (Mach-US) has several servers: a task
server, a file server, a tty server, an authentication server, a network server, etc. It
also has and emulation library that is mapped dynamically into each user process, and uses
the system servers to support the application programmers interface (API) of the UNIX
operating system.
Maruti (University of Maryland)
Maruti is a time-based operating system research project at the University of Maryland.
With Maruti 3.0, we are entering a new phase of our project. We have an operating system
suitable for field use by a wider range of users, and we are embarking on the integration
of our time-based, hard real-time technology with industry standards and more traditional
event-based soft- and non-real-time systems.
Masix (Blaise
Pascal Institute MASI Laboratory)
Masix is a distributed operating system, based on the Mach micro-kernel, currently under
development at the MASI Laboratory. Its primary goal is the simultaneous execution of
multiple personalities, in order to run concurrently on a same workstation applications
from the Unix, DOS, OS/2 and Win32 worlds. Furthermore, Masix pools the resources of a
workstation local area network, independently from the personalities that run on each
node. Masix also provides distributed services to the personalities.
Merlin (University of Sao Paulo)
An object-oriented, reflective operating system based on the Self programming language.
MetaOS (University of Victoria)
MetaOS is an object-oriented system model, based on meta-levels,
meta-spaces, meta-objects, and meta-interfaces, that allows applications to securely
customize their run-time environment on the fly. Furthermore, it allows applications to
share customizations with other applications, allows different types of security schemes
to be implemented, and permits secure, remote troubleshooting of software.
MOSIX (Hebrew University, Jerusalem, Israel)
A solution to the NOW problem is now available in the form of a multicomputer operating
system enhancements, called MOSIX. MOSIX is an enhancement of UNIX which allows users to
use the resources of a NOW configuration, without any change to the application level. By
using transparent, dynamic process migration algorithms, MOSIX enhances the network
services, i.e. NFS, TCP/IP, of UNIX, to the process level, by supporting load balancing
and a dynamic work distribution (leveling) in clusters of homogeneous computers.
Mungi (University of New South Wales)
A new operating system based on a single, flat virtual address space, orthogonal
persistence, and a strong but unintrusive protection model.
Nemesis (University of
Cambridge, UK)
Pegasus has produced an entirely new operating system, whose design is geared to support
of high-performance applications which require a consistent quality of service (QoS), such
as those which use multimedia. This operating system, called Nemesis, currently runs on a
number of platforms including Intel, Alpha (21064 and 21164) and StrongARM. Nemesis is a
single-address-space system, with an extremely light-weight kernel ('Nemesis Trusted
Supervisor Code', or NTSC), and strong emphasis on performing operating system functions
in the user's domain (thus avoiding the need for expensive protection regime changes).
NetBSD
NetBSD is one of two free, monolithic BSD 4.4-lite derivative operating systems. It
provides full UNIX support, including networking, X Windows, and almost all other normal
UNIX services. Unlike many other free UNIX implementations, NetBSD has also been ported to
a large variety of hardware platforms.
Oberon
Oberon is a freely distributable OS written in the Oberon language in the Pascal-Modula
tradition, developed by Niklaus Wirth and Juerg Gutknecht at the Institute for Computer
Systems at the Swiss Federal Institute of Technology in Zurich (ETHZ). The most recent
development of it is called Oberon System 3. It is available as Native Oberon for
Intel-based machines which is self-contained and makes no use of any alien software layer.
In addition, ports exist for all flavors of Windows: 3.1, 3.11, 95 and NT, as well as for
Linux and for Macintosh.
Opal (University of Washington)
Opal is a single-address-space operating system for 64-bit architectures. All Opal threads
execute with a single global address space. The existence of a single address space
simplifies sharing of complex (pointer-rich) data among cooperating applications, as well
as persistent storage of that data, because pointers have the same meaning to all threads
for potentially all time. Opal provides protection in the single address space; each
thread executes within a protection domain that defines which pages it has the right to
access.