1. Clasificación del software. Definición de sistema operativo
Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.
Página 7
1.Clasificación del software. Definición de sistema operativo
En la figura 1, se muestra un esquema general del software que incluye un sistema computador:
Figura 1. Esquema de un sistema computador en el que se muestra una clasificación de los tipos de softwares.
La capa inferior corresponde al hardware del computador. Por encima de ésta, encontramos el sistema operativo. Es muy difícil dar una definición exacta y precisa del término sistema operativo, que generalmente se define a partir de las funciones que desarrolla. Básicamente, son las dos funciones que presentamos acto seguido:
- Gestión eficiente de los recursos del sistema:
El SO controla el acceso eficiente a los recursos del computador: la memoria principal, la unidad central de proceso (CPU, procesador) y los dispositivos. Es decir, el SO se encarga principalmente de tareas de protección y de utilización eficiente del sistema computador.
En general, en un sistema computador tenemos muchos programas que se ejecutan al mismo tiempo, son programas que pueden pertenecer a uno o a varios usuarios, que compiten por los diferentes recursos del sistema (disco o memoria, por ejemplo). El sistema operativo reparte el tiempo de CPU entre los
diferentes programas y consigue una ejecución concurrente, protege el acceso a la memoria1 y coordina el acceso a los dispositivos (ya sean discos, memoria o impresora).
Notas y pies de figura de la fuente
(1)El SO protege el acceso a la memoria entre diferentes usuarios y entre usuarios y el mismo SO. Esto se estudiará con detalle en el módulo 3.
Página 8
- Presentación a los usuarios de una máquina virtual mucho más sencilla de utilizar:
El sistema operativo proporciona un entorno de trabajo al usuario y a los programas de aplicación que permite utilizar el computador (ejecutar programas) de manera más fácil e intuitiva. Desde este punto de vista, el sistema operativo proporciona al usuario una máquina virtual mucho más fácil de entender y utilizar por el hecho de esconder la complejidad del hardware.
Lectura de un fichero
Por ejemplo, si no existiera el sistema operativo, a la hora de leer un fichero, el usuario necesitaría comprender y ocuparse de los detalles técnicos del disco: cómo ha sido formateado (por ejemplo FAT, NTFS o EXT2), la geometría del disco (como el número de caras, pistas o sectores), el posicionamiento de los cabezales y la lectura, entre otros. El sistema operativo nos permite hacer la lectura de datos de un fichero con una operación mucho más sencilla e intuitiva, que no exige al usuario ningún conocimiento detallado del funcionamiento del disco. Con la operación read(nombre_fichero,pos,reg) se indica que se quiere leer del fichero nombre_fichero del registro reg, que está en la posición pos. Más adelante, veremos que estas operaciones reciben el nombre de llamadas al sistema (system calls) y el conjunto de llamadas al sistema ofrecidas por el sistema operativo constituyen la API (application programming interface) del sistema operativo.
Por encima del sistema operativo tenemos el resto de software de sistema, que consta de bibliotecas de rutinas y de aplicaciones de sistema como el intérprete de comandos (shell), compiladores, editores y, en general, programas que facilitan la comunicación entre el sistema operativo y el usuario. Un usuario puede tener la sensación de que el intérprete de comandos y las demás aplicaciones del sistema también forman parte del sistema operativo porque estas aplicaciones se instalan junto con el sistema operativo. Además, muchos usuarios no tienen que ser conscientes de la existencia de las llamadas al sistema porque interaccionan con el sistema operativo de forma indirecta utilizando estas aplicaciones. Es importante darse cuenta de la diferencia entre el sistema operativo y el resto de software de sistema:
- Una manera de darse cuenta de la frontera existente dentro del software de sistema es que un usuario cualquiera de un sistema computador no tendría que estar obligado a utilizar las aplicaciones de sistema disponibles; si quiere, tendría que poder utilizar otras o incluso implementarlas él mismo, sin necesitar ninguna autorización especial. Por ejemplo, el usuario puede seleccionar el intérprete de pedidos, editor, compilador, etc. que quiere utilizar. En cambio, todos los usuarios están obligados a utilizar el software que forma parte del sistema operativo; únicamente usuarios autorizados pueden introducir modificaciones dentro del código del sistema operativo.
Notas y pies de figura de la fuente
Bibliotecas de rutinas En algunos textos escritos en catalán o en castellano, se utiliza el término librería en lugar del término biblioteca a causa de una traducción incorrecta del término inglés original (library). Una biblioteca de rutinas es un conjunto de rutinas de uso común y que se encuentra disponible para todos los usuarios.
Página 9
-
Otra diferencia entre el sistema operativo y el resto de software es que, al fin y al cabo, todo el software se ejecuta sobre el procesador como instrucciones de lenguaje máquina. Para garantizar que los sistemas operativos puedan hacer su trabajo correctamente, es necesario que el procesador sea consciente de cuándo está ejecutando el código propio del sistema operativo. Eso es debido al hecho de que el código propio del sistema operativo tendría que poder llevar a cabo operaciones privilegiadas, mientras que el resto del software no. Los procesadores disponen de diversos modos de ejecución: un modo de ejecución privilegiado para ejecutar código propio del sistema operativo y un modo no privilegiado (usuario) para ejecutar cualquier otro código (bibliotecas, aplicaciones de sistema, aplicaciones de usuario).
-
Sin embargo, es posible que en algún documento encontréis que se hable de sistema operativo para referirse a todo el software de sistema presentado en la figura 1. En este caso, se acostumbra a utilizar el término núcleo o kernel del sistema operativo para referirse a la capa que se encuentra inmediatamente encima del hardware del sistema computador.
Finalmente, sobre el software de sistema está el software de aplicación. Una parte de este software la utiliza el usuario sobre todo para resolver problemas específicos. En este nivel encontramos hojas de cálculo, procesadores de textos, navegadores web, lectores de correo electrónico y juegos, entre otros.
Notas y pies de figura de la fuente
Software y lenguaje máquina Encontraréis más información sobre el software y su ejecución sobre el procesador como instrucciones de lenguaje máquina en el módulo 2.
Ver fragmento extraído sin normalizar
## Página 7
<!-- source-page: 7 -->
GNUFDL • PID_00169381 7 Introducción a los sistemas operativos
1.Clasificación del software. Definición de sistema
operativo
En la figura 1, se muestra un esquema general del software que incluye un
sistema computador:
Figura 1. Esquema de un sistema computador en el que se muestra una clasificación de los tipos de softwares.
La capa inferior corresponde al hardware del computador. Por encima de ésta,
encontramos el sistemaoperativo. Es muy difícil dar una definición exacta y
precisa del término sistema operativo, que generalmente se define a partir de las
funciones que desarrolla. Básicamente, son las dos funciones que presentamos
acto seguido:
1) Gestión eficiente de los recursos del sistema:
El SO controla el acceso eficiente a los recursos del computador: la me-
moria principal, la unidad central de proceso (CPU, procesador) y los
dispositivos. Es decir, el SO se encarga principalmente de tareas de pro-
tección y de utilización eficiente del sistema computador.
En general, en un sistema computador tenemos muchos programas que se (1)El SO protege el acceso a la me-
ejecutan al mismo tiempo, son programas que pueden pertenecer a uno o a moria entre diferentes usuarios y
entre usuarios y el mismo SO. Esto
varios usuarios, que compiten por los diferentes recursos del sistema (disco o se estudiará con detalle en el mó-
memoria, por ejemplo). El sistema operativo reparte el tiempo de CPU entre los dulo 3.
diferentes programas y consigue una ejecución concurrente, protege el acceso
a la memoria1 y coordina el acceso a los dispositivos (ya sean discos, memoria
o impresora).
## Página 8
<!-- source-page: 8 -->
GNUFDL • PID_00169381 8 Introducción a los sistemas operativos
2) Presentación a los usuarios de una máquina virtual mucho más sencilla de
utilizar:
El sistema operativo proporciona un entorno de trabajo al usuario y a los
programas de aplicación que permite utilizar el computador (ejecutar
programas) de manera más fácil e intuitiva. Desde este punto de vista, el
sistema operativo proporciona al usuario una máquina virtual mucho
más fácil de entender y utilizar por el hecho de esconder la complejidad
del hardware.
Lectura de un fichero
Por ejemplo, si no existiera el sistema operativo, a la hora de leer un fichero, el usuario
necesitaría comprender y ocuparse de los detalles técnicos del disco: cómo ha sido for-
mateado (por ejemplo FAT, NTFS o EXT2), la geometría del disco (como el número de
caras, pistas o sectores), el posicionamiento de los cabezales y la lectura, entre otros. El
sistema operativo nos permite hacer la lectura de datos de un fichero con una operación
mucho más sencilla e intuitiva, que no exige al usuario ningún conocimiento detallado
del funcionamiento del disco. Con la operación read(nombre_fichero,pos,reg) se indica
que se quiere leer del fichero nombre_fichero del registro reg, que está en la posición
pos. Más adelante, veremos que estas operaciones reciben el nombre de llamadas al sis-
tema (system calls) y el conjunto de llamadas al sistema ofrecidas por el sistema operativo
constituyen la API (application programming interface) del sistema operativo.
Por encima del sistema operativo tenemos elrestodesoftwaredesistema, Bibliotecas de rutinas
que consta de bibliotecas de rutinas y de aplicaciones de sistema como el in-
térprete de comandos (shell), compiladores, editores y, en general, programas En algunos textos escritos en
catalán o en castellano, se uti-
que facilitan la comunicación entre el sistema operativo y el usuario. liza el término librería en lugar
del término biblioteca a causa
de una traducción incorrecta
Un usuario puede tener la sensación de que el intérprete de comandos y las del término inglés original (li-
brary). Una biblioteca de ru-
demás aplicaciones del sistema también forman parte del sistema operativo tinas es un conjunto de ruti-
nas de uso común y que se en-
porque estas aplicaciones se instalan junto con el sistema operativo. Además, cuentra disponible para todos
los usuarios.
muchos usuarios no tienen que ser conscientes de la existencia de las llamadas
al sistema porque interaccionan con el sistema operativo de forma indirecta
utilizando estas aplicaciones. Es importante darse cuenta de la diferencia entre
el sistema operativo y el resto de software de sistema:
1) Una manera de darse cuenta de la frontera existente dentro del software de
sistema es que un usuario cualquiera de un sistema computador no tendría
que estar obligado a utilizar las aplicaciones de sistema disponibles; si quiere,
tendría que poder utilizar otras o incluso implementarlas él mismo, sin necesi-
tar ninguna autorización especial. Por ejemplo, el usuario puede seleccionar el
intérprete de pedidos, editor, compilador, etc. que quiere utilizar. En cambio,
todos los usuarios están obligados a utilizar el software que forma parte del
sistema operativo; únicamente usuarios autorizados pueden introducir modi-
ficaciones dentro del código del sistema operativo.
## Página 9
<!-- source-page: 9 -->
GNUFDL • PID_00169381 9 Introducción a los sistemas operativos
2) Otra diferencia entre el sistema operativo y el resto de software es que, al Software y lenguaje
fin y al cabo, todo el software se ejecuta sobre el procesador como instruccio- máquina
nes de lenguaje máquina. Para garantizar que los sistemas operativos puedan Encontraréis más información
hacer su trabajo correctamente, es necesario que el procesador sea consciente sobre el software y su ejecu-
ción sobre el procesador como
de cuándo está ejecutando el código propio del sistema operativo. Eso es de- instrucciones de lenguaje má-
bido al hecho de que el código propio del sistema operativo tendría que po- quina en el módulo 2.
der llevar a cabo operaciones privilegiadas, mientras que el resto del software
no. Los procesadores disponen de diversos modos de ejecución: un modo de
ejecución privilegiado para ejecutar código propio del sistema operativo y un
modo no privilegiado (usuario) para ejecutar cualquier otro código (bibliote-
cas, aplicaciones de sistema, aplicaciones de usuario).
3) Sin embargo, es posible que en algún documento encontréis que se hable
de sistema operativo para referirse a todo el software de sistema presentado en
la figura 1. En este caso, se acostumbra a utilizar el término núcleo o kernel del
sistema operativo para referirse a la capa que se encuentra inmediatamente
encima del hardware del sistema computador.
Finalmente, sobre el software de sistema está el softwaredeaplicación. Una
parte de este software la utiliza el usuario sobre todo para resolver problemas
específicos. En este nivel encontramos hojas de cálculo, procesadores de tex-
tos, navegadores web, lectores de correo electrónico y juegos, entre otros.