2. INTRODUCCIÓN A LOS SO
¿Qué es una computadora?
Es una máquina que ha sido diseñada
para completar tareas complejas en el
menor tiempo posible.
A partir de un conjunto de datos de
entrada, es capaz de procesarlos y
obtener datos de salida que sirvan de
utilidad para el usuario.
3. ESQUEMA FUNCIONAL DEL PC
Componentes Principales:
• Dispositivos de Entrada
• Dispositivos de Salida
• Memoria
• RAM (Random Access Memory)
• ROM (Read Only Memory)
• CPU (Unidad Central de
Procesamiento)
• ALU (Unidad Aritmético - Lógica)
• CU (Unidad de Control)
• Memoria Masiva o Externa (HDD o
SSD) Arquitectura de Von Neumann
4. ¿Qué lenguaje entienden las PC?
Lenguaje Máquina: Es un sistema de
códigos directamente interpretable por
el CPU, este lenguaje está compuesto
por un conjunto de instrucciones que
determinan acciones a ser tomadas
por la máquina.
Los microprocesadores trabajan con
dos únicos estados o niveles de
voltaje (1 y 0), el lenguaje de
máquina sólo utiliza dichos signos.
(TTL o CMOS)
Particularmente trabajan con Sistema
Binario, Octal y Hexadecimal.
Ejm: 11010110 (8 bits) 1 Byte
5. El Disco Duro
Un disco duro es un dispositivo para el
almacenamiento de datos de forma no
volátil, utiliza un sistema de grabación
magnética. De esta forma es posible
mantener la información grabada en un
soporte de forma permanente Suelen
denominarse como ‘HDD’ o Hard Disk
Drive.
El disco duro está formado por uno o
varios platos rígidos introducidos en una
caja hermética y unidos por eje común
que gira a gran velocidad.
Posee un cabezal, el cual se encargará de
la lectura y escritura de datos en el
mismo.
6. Tipos de Disco Duro
HDD (Hard Disk Drive): Los HDD
guardan los datos en placas de metal que
están girando todo el tiempo y cada vez
que el ordenador quiere buscar algo, el
dispositivo usa un componente llamado
cabezal para ubicar la posición donde está
la información y dársela al ordenador.
SSD (Solid State Drive): Los SSD nunca
se están moviendo. Para almacenar la
información crean bloques y cada vez que
el ordenador quiere acceder a ella, el SDD
solo la entrega. Está compuesto
enteramente de dispositivos electrónicos,
de ahí su rapidez y mejor desempeño con
respecto a un HDD.
7. SSD vs HDD
Ventajas:
• Arranque más rápido
• Gran velocidad de escritura y lectura
• Lanzamiento y arranque de aplicaciones en menor tiempo
• Menor consumo de energía y producción de calor
• Sin ruido
• Menor peso y tamaño que un disco duro tradicional de similar capacidad, son mucho más portátiles.
• Mayor resistencia a caídas y golpes
Desventajas:
• SSD posee menor durabilidad (Tiempo de vida Limitado).
• Su precio es mucho mayor con respecto a SSD, por lo que desde esa perspectiva representa un limitante a
la hora de escoger esta tecnología.
8. Estructura Lógica de un Disco Duro
Sector de arranque (Master Boot Record):
Es el primer sector de todo el disco duro, es decir, pista 0, cilindro 0 sector 1.
En este espacio se almacena la tabla de particiones.
Almacena a ‘Master Boot’, el cual se encarga de leer la tabla de particiones y proporcionar el control al sector
de arranque de la partición activa.
Cuando tenemos varios sistemas operativos instalados en distintas particiones, será necesario la instalación
de un gestor de arranque (bootloader) para que podamos elegir el sistema operativo que queremos arrancar.
Espacio de particiones:
El disco duro puede estar formado por una partición completa que abarca todo el disco duro, o por varias de
estas. Cada partición divide el disco duro en un número determinado de cilindros y pueden tener el tamaño
que nosotros deseemos asignarle. Esta información se almacenará en la tabla de particiones.
A cada una de las particiones se le asignará un nombre llamado etiqueta. En Windows será letras C: D: C:, etc.
Para que una partición esté activa deberá tener un formato de archivos.
9. Espacio sin particionar:
También puede existir un determinado espacio que aún no hayamos particionado, es decir, que no le hayamos
dado un formato de archivos. En este caso no estará disponible para almacenar archivos.
10.
11. Canales y Puentes
Los distintos componentes de un
sistema de cómputo se comunican
mediante los diferentes canales
(comúnmente llamados buses).
En el nivel más básico, los canales son
líneas de comunicación entre el
procesador y los demás componentes
del chipset.
Un chipset provee distintos buses, con
un agrupamiento lógico según la
velocidad requerida por sus
componentes y otras características
que determinan su topología.
13. ¿Qué es un Sistema Operativo?
Se denomina SO al conjunto de programas que
permite manejar la memoria, disco, medios de
almacenamiento de información y los diferentes
periféricos o recursos de nuestra computadora,
como son el teclado, el mouse, la impresora, la
tarjeta de red, entre otros.
Cada periférico utilizan un driver o controlador
para poder gestionar el dispositivo, los cuales
son desarrollados por los fabricantes de cada
equipo.
Se ocupa de gestionar la memoria de nuestro
sistema y la carga de los diferentes programas,
cada uno con su respectiva prioridad.
14. Tipos de Procesos del Sistema Operativo
De primer plano: requieren de la
interacción directa del usuario para si
ejecución, es el caso de un navegador web,
un editor de texto, un programa de diseño
de imágenes.
Ejm: Word, Excel, Chrome, Firefox, Bloc de
Notas.
De segundo plano: son aquellos programas
que no requieren del usuario y
habitualmente no poseen una interfaz
gráfica o “pantalla”. Un ejemplo de este tipo
de procesos es el anti-virus.
Ejm: Conf. de Red o Audio, Servicios.
15. Gestión de Memoria
Para poder ser ejecutado un proceso
necesita haber sido cargado en la memoria
RAM, debido a que un proceso obviamente
no puede ocupar una porción de memoria
asignada a otro proceso, es imprescindible
la gestión de la misma para mantener la
estabilidad del sistema.
El direccionamiento es una parte importante
de la gestión de memoria, puesto que
influye mucho en la visión del mismo por
parte de un proceso, como en el
aprovechamiento del hardware y el
rendimiento del sistema.
16. El Kernel
Parte central de un sistema operativo,
encargado de realizar toda la comunicación
segura entre el software y el hardware del
ordenador.
Gestiona tanto el hardware interno como
externo, y adicionalmente realiza la gestión
de la memoria RAM. (SO Multitarea)
Es la parte del sistema operativo que se
ejecuta en modo privilegiado, debido a que
allí se encuentran los drivers gracias a los
cuáles podemos controlar el audio, el
bluetooth, la conectividad WiFi, la pantalla,
la carga, etc. (Procesos de Segundo Plano)
17. BIOS
BIOS son las siglas en inglés de «Basic Input Output System».
Es un firmware instalado en una memoria ROM (no volátil) del ordenador, frecuentemente en un
chip dedicado.
Al contrario que los sistemas operativos, no tiene que instalarse, sino que ya está integrada en el
hardware del ordenador.
18. BIOS
Al encender la PC, comprueba si las
partes más importantes son
funcionales, como la memoria, la
CPU y otros componentes de
hardware. Esta prueba se denomina
auto prueba de arranque o power on
self test (POST).
Si la BIOS detecta un error durante el
POST, emite uno o más pitidos por
los altavoces del equipo. Estos
sonidos sirven para indicar al usuario
dónde se ha detectado el problema.
19. ¿Cómo acceder a la BIOS?
La forma de acceder a la
configuración de la BIOS de
nuestra computadora requiere
que pulsemos una secuencia de
teclas en el preciso momento
en que la PC se encuentra
arrancando, es decir casi
apenas es encendida.
Ejm: F1, F2, F8, F10, F12, Esc.
(dependiendo del fabricante)
20. ¿Cómo Bootear (Arrancar) desde la BIOS?
Si una PC no posee sistema operativo
instalado, desde la BIOS se le puede
indicar desde que dispositivo arrancar.
Puede ser una unidad USB, CD-DVD,
Disco duro externo, etc.
Basta con seleccionar la unidad que
contiene al instalador del Sistema
Operativo deseado.
26. ¿Cómo interactuar con el SO?
CLI (Command Line
Interface): Interfaz de línea
de comandos, por sus siglas
en inglés.
Es un programa que permite
a los usuarios escribir
comandos de texto
instruyendo a la
computadora para que
realice tareas específicas.
27. Origen del CLI
Tuvo su apogeo de uso en la
década de 1960.
El único dispositivo de entrada
era el teclado y la pantalla de la
computadora solo podía
mostrar información de texto.
Los sistemas operativos como
MS-DOS usaban la CLI como
interfaz de usuario estándar.
28. Origen del CLI
Era la única forma de
comunicarse con la PC
Si los usuarios escriben el
comando incorrecto, es
probable que terminen
eliminando los archivos
incorrectos o cerrando
accidentalmente el programa
antes de guardar su trabajo.
29. Origen del CLI
Luego, después de años de usar solo un
teclado y arriesgarse a hacer un mal uso
de la línea de comandos, se inventó el
mouse
Posteriormente aparece GUI (Graphical
User Interface). La propia GUI fue
fenomenal debido al uso de botones y
menús para representar comandos
específicos. Se ha demostrado que este
enfoque es muy intuitivo.
30. Shell
Shell es una interfaz de usuario responsable de procesar todos los comandos escritos en CLI.
Se encarga de leer e interpretar los comandos e indica al SO que realice las tareas
solicitadas.
Permite administrar la CLI y actúa como el intermediario, conectando a los usuarios con el
sistema operativo.
En la práctica, hay muchas cosas que un shell puede procesar, como:
• Trabajar con archivos y directorios
• Abrir y cerrar un programa
• Gestión de procesos informáticos
• Realización de tareas repetitivas
Entre muchos tipos de shell, los más populares son Windows shell (para Windows) y bash
(para Linux y MacOS).
31. Windows Shell
El shell predeterminado en
Windows es CMD.exe o el
Command Prompt (símbolo
del sistema).
Mismo que ha sido utilizado
desde cuando MS-DOS era el
sistema operativo principal.
Actualmente Windows posee
dos CLI: CMD y PowerShell.
32. CMD (Símbolo del Sistema)
Permite la ejecución de comandos básicos y la
preparación de scripts relativamente sencillos,
aunque también puede ejecutar tareas más
complejas como la agregación de una unidad
en red, modificar el registro del sistema o hacer
copias de seguridad de nuestros datos.
Por otro lado cuando queremos hacer
desarrollos reales o cuando necesitamos
acceder a ciertas áreas del sistema en busca de
información, es donde CMD muestra sus
carencias y donde veremos que resulta
imposible llegar a un nivel profundo del SO, es
decir, el símbolo del sistema lo podemos
utilizar para acciones básicas y scripts sencillos,
poco más.
33. Comandos Básicos CMD
systeminfo (Aparecerá por línea de comandos información del equipo como nombre del sistema,
procesador, memoria RAM, placa base, almacenamiento disponible, BIOS, tarjeta de red, etc.)
cls (Limpiar la línea de comandos)
/? (Muestra ayuda o parámetros posibles del comando en cuestión)
cd (Cambiar carpeta)
C:, D:, E:, etc (Cambiar de unidad)
DIR (Enlistar carpetas y archivos que contiene la carpeta actual)
ver (Indica que versión exacta de Windows tenemos)
tree (Muestra el árbol de ruta de ubicaciones)
md Nombre_de_CarpetaNombre_Carpeta1 (Crear una carpeta)
rd Nombre_de_CarpetaNombre_Carpeta2 (Borrar esa carpeta)
34. Comandos Básicos CMD
copy “archivo1.ext” “pruebasarchivo2.ext” (Copiar un archivo)
copy con Archivo.txt (Crea un archivo de texto editable desde la consola, finalizar la edición con control z)
xcopy Nombre_de_Carpeta Nombre_Carpeta1 (Copia el contenido de la carpeta 1 a la carpeta 2)
ren Archivo 1.txt NuevArchivo1.txt (Renombrar un archivo o carpeta)
del Archivo 1.txt (Borrar un archivo)
type Archivo1.txt (Visualizar el contenido de un archivo de texto)
ipconfig Indica el estado de la conexión de red además de incluir parámetros como dirección IP, puerta de
enlace.
netstat Muestra el estado de las conexiones que tiene nuestro PC
tracert Traza la ruta seguida por un paquete desde nuestra PC hasta un host de destino
35. Comandos Básicos CMD (P2)
Este comando tiene la siguiente sintaxis: attrib [+ o -] [A] [S] [H] [R] [unidad:][ruta]archivo
• A (archivo): sirve para saber si se ha modificado o no el directorio o archivo. Se suele asignar por defecto cuando se
crea un nuevo archivo o directorio.
• R (solo lectura): sirve para que no se pueda ni borrar ni modificar el contenido de un archivo o directorio. Solo
podemos ver lo que contiene.
• H (Oculto): sirve para ocultar archivos y directorios durante las operaciones normales.
• S (sistema): sirve para asignar a un archivo o directorio como si fuera un archivo del sistema, esto hace que este
oculto y sea solo de lectura. Muchos archivos de Windows están con este atributo con la finalidad de no ser
modificados.
CHKDSK Comúnmente conocido como Check Disk, se trata de una herramienta propiedad de Microsoft que nos permite,
entre otras cosas, analizar el estado de los discos duros y las unidades de almacenamiento externas conectadas al equipo
para buscar errores y repararlos posteriormente.
FORMAT El comando de formato es un comando del símbolo del sistema que se usa para formatear una partición
específica en un disco duro (interno o externo), disquete o unidad flash en un sistema de archivos específico.
36. PowerShell
PowerShell es una herramienta más moderna, la cual
pudimos ver por primera vez en Windows Vista (2007) y no
cabe duda que en el futuro sustituirá completamente al
CMD.
Esta herramienta necesita de ciertas características para
funcionar, por ejemplo, .NET Framework.
La principal diferencia entre ambos es que PowerShell
permite una programación orientada a objetos, es decir, un
programación compleja, además permite no solo trabajar
con el sistema operativo Windows a nivel usuario,
sino también con programas de Microsoft como SQL
Server, Exchange o IIS, es decir, un alcance completo que
nos permitirá automatizar tareas también a nivel de
servidor.
38. PowerShell
La herramienta nativa Windows PowerShell es un recurso de entrada para el sistema
operativo Windows.
Ya sea que haya que administrar servidores o sistemas, PowerShell es una versión mejorada
y avanzada del tradicional Símbolo del Sistema.
Las tareas y funciones de Windows Powershell son básicamente las mismas que
encontramos en el CMD, (enviar órdenes a Windows a través de comandos específicos),
aunque además dispone de varias funciones extras y que pueden ser muy útiles para el
usuario.
Al contrario de lo que sucede en el CMD, PowerShell nos presenta una robusta interfaz de
scripts con funciones específicas en donde se los puede ejecutar para llevar a cabo diversos
procesos bajo el sistema Windows. Con una línea de comandos interactiva de este tipo, se
pueden lanzar comandos para la automatización de diferentes tareas.
39. PowerShell
La interfaz de PowerShell puede ser usada para distintos fines, como puede ser la ejecución
de aplicaciones avanzadas o hasta tareas más simples como saber la hora actual. Asimismo,
los comandos de Powershell pueden actuar de manera conjunta, combinándose en la línea
de comandos para obtener resultados más específicos y avanzados. Esto se ha denominado
“pipelining”.
Mientras tanto, Powershell también ofrece una opción que puede ser muy útil para algunos
usuarios: la posibilidad de añadir a la consola otros comandos creados por los mismos
usuarios.
Aún cuando PowerShell fue creado hace varios años y que con Windows 10 tiene mayor
visibilidad y más protagonismo, todavía sigue siendo una herramienta poco conocida, no
solo para los usuarios básicos, sino también para muchos operadores informáticos que no
conocen todas las ventajas que pueden ofrecer los cmdlets (script light) de esta consola.
40. Comandos esenciales de PowerShell
En PowerShell, los comandos reciben el nombre de “cmdlet”, y se puede utilizar la tecla de
tabulación para que Powershell autocomplete el nombre del cmdlet que se quiere usar.
Windows PowerShell fue creado teniendo en cuenta su compatibilidad con versiones
anteriores, por lo que es un recurso que funciona bien con los mismos comandos que utiliza
el CMD. Sabiendo esto, se pueden utilizar los mismos comandos que se usaban en el
Símbolo del Sistema, pero en una interfaz más avanzada y con muchos más comandos.
Aquí hemos reunido una cantidad importante de cmdlets útiles que se pueden usar en
Powershell y detallamos la sintaxis de cada uno, así como la función específica de cada uno.
Para comenzar con lo básico, y dar una mirada rápida a los cmdlets que nos ofrece
PowerShell, podemos ejecutar el comando “Show-Command”, mediante el cual se va a abrir
una ventana mostrándonos una lista extensa y completa de todos los comandos
disponibles.
41. CMDLETS
Los cmdlets de PowerShell son comandos que trabajan sobre los objetos de windows.
Cuando utilizamos un comando para saber el nombre UPN de un usuario del directorio
activo, estamos accediendo al objeto que representa al usuario y recuperando el valor del
parámetro UPN (User Personal Name).
Esta metodología de trabajo permite una interacción integrada entre diferentes comandos,
ya que PowerShell controla la salida de un comando para poder suministrárselo a otro
comando. Otros sistemas, como cmd, se basan en listados de texto, en los que un comando
devuelve un listado que puede ser facilitado a otro comando para que lo interprete.
El maquetado de la información es más sencillo porque la salida de un comando se puede
redirigir a comandos de maquetación. Estos comandos de maquetación son comunes al
sistema, no al comando que ha devuelto la información.
42. Estructura de los CMDLETS
Los cmdlets utilizan una estructura verbo-sustantivo. El nombre del comando está
compuesto por un verbo que establece la acción y un sustantivo que define el tipo de
objeto sobre el que se va a actuar, separados por un guión.
Esta estructura simplifica el aprendizaje. A modo de ejemplo estudiemos el siguiente
comando:
New-Alias
New es el verbo. Parece evidente que el comando creará algo nuevo.
Alias es un sustantivo. El comando va a trabajar sobre los alias. Entendemos fácilmente que
alias se refiere a diferentes formas de llamar a un comando.
Uniendo ambos conceptos, new-alias va a crear una nueva forma de llamar a un comando
43. Estructura de los CMDLETS
Cualquier cmdlet que vaya a crear algo, utilizará el verbo new. Si se trata de interactuar con
los alias del sistema, utilizará el sustantivo alias. Ejemplos de comandos:
New-Item
New-Localuser
New-Variable
Get-Alias
Import-Alias
Puedes obtener un listado de los comando con el verbo New y con al sustantivo Alias con
estas dos órdenes:
Get-Command –Verb New
Get-Command –Noun Alias
44. CMDLETS Principales
Get-Command
En caso de que quieras conocer todos los cmdlets que ofrece PowerShell, lo podrás hacer
escribiendo este comando en la consola.
Windows PowerShell permite, a través de este comando, conocer todas las funciones y
características que incluyen sus cmdlets, presentados en forma de lista en la que se
describen las funciones de cada uno, así como sus parámetros y opciones especiales.
Para obtener esta lista de comandos, es necesario escribir “Get-Command” seguido de un
parámetro específico, con el que se obtendrá información del cmdlet en cuestión. Por
ejemplo, si escribimos en Powershell “Get-Command *-help*”, vamos a ver una serie de
comandos que aceptan el parámetro “-help”.
45. CMDLETS Principales
Get-Host
Con la ejecución de este comando se obtiene la versión de Windows PowerShell que está
usando el sistema.
Get-History
Con este comando se obtiene un historial de todos los comandos que se ejecutaron bajo
una sesión de PowerShell y que actualmente se encuentran ejecutándose.
Get-Random
Ejecutando este comando se obtiene un número aleatorio entre 0 y 2.147.483.646.
46. CMDLETS Principales
Get-Service
En ciertas ocasiones, será necesario saber qué servicios se instalaron en el sistema, para lo
que se puede usar el comando Get-Service, que brindará información acerca de los servicios
que se están ejecutando y los que ya fueron detenidos.
Para usar este cmdlet, hay que ingresar “Get-Service” en la consola, usando al mismo
tiempo alguna de las parámetros adicionales, en una sintaxis similar al siguiente ejemplo:
Con esto se logra que se ejecuten los servicios en el sistema. En caso de que se ejecute este
comando sin ningún parámetro, se presentará una lista de todos los servicios con sus
respectivos estados (“Ejecutándose o “Detenido”, por ejemplo).
47. CMDLETS Principales
Get-Help
Especialmente muy útil para usuarios novatos en el uso de Powershell, este comando
presenta una ayuda básica para conocer más acerca de los cmdlets y sus funciones.
En caso de que estés usando PowerShell desde hace poco tiempo, es muy factible que te
encuentres desorientado y con algunas dificultades; en dichas circunstancias, Get-Help va a
convertirse en tu guía, puesto que este comando aporta la documentación imprescindible
acerca de cmdlets, funciones, comandos y scripts.
De igual forma, su uso no es nada complicado: tan solo hay que escribir “Get-Help”
acompañado del cmdlet del que se desean conocer más detalles. Para ejemplificar su uso,
podríamos estar buscando más información del cmdlet “Get-Process”, en cuyo caso sería
suficiente con escribir “Get-Help Get-Process”.
48. CMDLETS Principales
Get-Date
Para saber de una forma rápida qué día fue en una determinada fecha del pasado, usando
este comando se obtendrá el día exacto. Por ejemplo, para saber qué día fue el 20 de mayo
de 2009, habría que escribir en Powershell:
“Get-Date 20.05.2009”, ingresando la fecha en formato “dd.mm.aa”. En caso de ejecutar
Get-Date solo, nos brindará la fecha y hora actuales.
49. CMDLETS Principales
Copy-Item
Con este comando se pueden copiar carpetas o archivos.
Si estás buscando hacer una copia de archivos y directorios en tu unidad de
almacenamiento, o si necesitas copiar claves o entradas del registro, Copy-Item es el cmdlet
indicado. Tiene un funcionamiento muy parecido al comando “cp” que se incluye en el
Símbolo del Sistema, aunque es bastante mejor.
Para esto, se debe usar el comando Copy-Item para copiar y modificar el nombre de
elementos usando el mismo comando, con el que se puede establecer un nuevo nombre
para dicho elemento. En el caso de que quieras copiar y renombrar el archivo
“PracticaPS.docx” a “PracticaPowerS.txt”, escribe:
50. CMDLETS Principales
Invoke-Expression
Con Invoke-Expression se ejecuta otra expresión o comando. Si te encuentras ingresando
una cadena de entrada o una expresión, en primer lugar este comando la va a analizar y a
continuación la ejecutará. Sin este comando, la cadena no devuelve ninguna acción. Invoke-
Expression solo trabaja a nivel local, a diferencia de Invoke-Command.
Para usar este comando, se debe escribir Invoke-Expression junto con una expresión o
comando. Por ejemplo, se podría fijar una variable “$Command” con una orden que señale
el cmdlet “Get-Process”. Mediante la ejecución del comando “Invoke-Expression
$Command”, “Get-Process” va a actuar del mismo modo que un cmdlet en el equipo local.
Del mismo modo, se puede ejecutar una función en un script con el uso de una variable, lo
que resulta muy útil si se trabaja con scripts dinámicos.
51. CMDLETS Principales
Invoke-Command
En el momento en que quieras ejecutar un script o un comando PowerShell (de forma local o remota, en uno
o varios ordenadores), “Invoke-Command” va a ser tu mejor opción. Es simple de utilizar y te ayudará a
gestionar ordenadores por lotes.
Es necesario tipear Invoke-Command junto al script o comando con su localización exacta.
Invoke-WebRequest
A través de este cmdlet, similar a cURL en Linux, se puede hacer un inicio de sesión, un scraping y la descarga
de información relacionada a servicios y páginas web, mientras se trabaja desde la interfaz de PowerShell
haciendo el monitoreo de algún sitio web del que se desee obtener esta información.
Para llevar a cabo estas tareas, hay que utilizarlo como Invoke-WebRequest junto a sus parámetros. Con esto,
es posible conseguir los enlaces que tiene un sitio web específico con la siguiente sintaxis de ejemplo:
52. CMDLETS Principales
Invoke-Expression
Con Invoke-Expression se ejecuta otra expresión o comando. Si te encuentras ingresando
una cadena de entrada o una expresión, en primer lugar este comando la va a analizar y a
continuación la ejecutará. Sin este comando, la cadena no devuelve ninguna acción. Invoke-
Expression solo trabaja a nivel local, a diferencia de Invoke-Command.
Para usar este comando, se debe escribir Invoke-Expression junto con una expresión o
comando. Por ejemplo, se podría fijar una variable “$Command” con una orden que señale
el cmdlet “Get-Process”. Mediante la ejecución del comando “Invoke-Expression
$Command”, “Get-Process” va a actuar del mismo modo que un cmdlet en el equipo local.
Del mismo modo, se puede ejecutar una función en un script con el uso de una variable, lo
que resulta muy útil si se trabaja con scripts dinámicos.
53. CMDLETS Principales
Set-ExecutionPolicy
Si bien podemos crear e iniciar scripts (.ps1) desde PowerShell, vamos a encontrarnos limitados debido a
cuestiones de seguridad. Sin embargo, esto puede ser modificado a través de la categoría de seguridad
empleando el cmdlet Set-ExecutionPolicy.
Solo es necesario tipear Set-ExecutionPolicy junto a una de las cuatro opciones de seguridad para hacer los
cambios que se requieren:
Restricted
All Signed
Remote Signed
Unrestricted
Por ejemplo, si queremos establecer el nivel de seguridad restringida, tendríamos que usar:
54. CMDLETS Principales
Get-Item
En caso de que estés buscando información acerca de un elemento con una ubicación concreta, como podría
ser un directorio en el disco duro, el comando Get-Item resulta el indicado para esta tarea.
Hay que aclarar que no se obtiene el contenido mismo del elemento, tal como subdirectorios y archivos en
una carpeta específica, a no ser que lo solicites de manera explícita.
Del otro lado a Get-Item nos encontramos con el cmdlet Remove-Item, que permite eliminar el elemento
especificado.
Remove-Item
En caso de que desees borrar elementos como carpetas, archivos, funciones y variables y claves del registro,
Remove-Item será el mejor cmdlet. Lo importante es que ofrece parámetros para introducir y expulsar
elementos.
Con el cmdlet Remove-Item puedes remover elementos de localizaciones específicas con el uso de ciertos
parámetros. A modo de ejemplo, es posible remover el archivo “Finanzas.txt” empleando el comando
siguiente:
55. Bash (Linux y MAC)
Bash son las siglas de Bourne Again SHell y
fue desarrollado por la Fundación Free
Software.
Es un tipo de shell que se utiliza en MacOS y
en muchas distribuciones de Linux, shell Bash
es uno de los muchos shells que pueden usar
los usuarios de Linux. Los otros tipos son shell
Tchs, shell Ksh y shell Zsh.
En la mayoría de las distribuciones de Linux,
el shell se encuentra en el menú Utilidades.
Si usa el escritorio Gnome, el nombre
es Terminal, pero si usa KDE, el nombre
es Konsole.
56. Bash (Linux y MAC)
Mientras tanto, en MacOS, el programa
es Terminal.app
Básicamente, la mayoría de los
comandos constan de: el comando en
sí, el argumento y la opción.
Si bien el comando contiene la
instrucción que queremos realizar, el
argumento indica dónde debe operar
el comando y la opción solicita la
modificación de la salida.
57. ¿Cómo interactuar con el SO?
GUI (Graphical User Interface): La Interfaz
gráfica de usuario o GUI es el entorno visual
de imágenes y objetos mediante el cual una
máquina y un usuario interactúan.
A mediados de los 70 las GUI comenzaron a
sustituir a las interfaces de línea de comando
(CLI), y esto permitió que la interacción con
las computadoras fuera más sencilla e
intuitiva.
Está basada en la interacción a través del
ratón y el teclado, la señal del dispositivo se
transmite al ordenador, que luego la traduce
en un movimiento equivalente en la pantalla.
58. Componentes de la GUI
Una GUI combina el diseño visual y las funciones
de programación. Por esto, ofrece botones, menús
desplegables, campos de navegación, campos de
búsqueda, iconos y widgets. Los componentes más
comunes de una GUI son los siguientes:
Campos de entrada, Ventana, Lienzo (canvas),
Marcos, Botones, Bloques de encabezado, Campos
de texto.
Al escribir las GUI, los desarrolladores se basan en
la programación basada en eventos, porque las
acciones del usuario son impredecibles. Por esto
las GUI no se pueden programar linealmente, sino
que deben escribirse de tal manera que un
comando solo se ejecute cuando el usuario dé la
señal para este.
60. Esquema de Composición del SO
1. Shell (Intérprete de comandos):
Responsable de traducir las instrucciones
ingresadas vía CLI a un lenguaje que la PC
entienda.
2. Servicios (API: Aplication Program
Interface): Aquí se gestionan las
peticiones de hardware por parte de las
aplicaciones.
3. Núcleo (Kernel): Se encarga de la gestión
de memoria, HDD y los procesos.
61. Modelo de Capas SO
Se lo puede mirar como una jerarquía de niveles de
abstracción, de modo que cada nivel proporcione un
conjunto especifico de funciones primitivas que
podrán usar las funciones de la capa superior.
1. Capa de Núcleo: El núcleo ó kernel gestiona
todos los procesos, es el encargado de llevar la
cuenta de todos los procesos activos y de la
planificación de los mismos, al seleccionar cual
de ellos ocupara tiempo del procesador, esta
capa es muy importante, dado que define el
rendimiento del sistema, prueba de ello es el
rendimiento que obtuvo Windows XP, al ser
creado sobre la base de un núcleo UNIX.
62. Modelo de Capas SO
2. Capa de Entrada y salida básica: Proporciona funciones primitivas para la gestión de
la memoria secundaria, es decir, se encarga de proveer las primitivas necesarias para la
localización, escritura y lectura de bloques de datos en el disco duro, sin llegar a
proporcionar muchos detalles, cabe señalar que en esta capa la información
almacenada no se representa como archivos, la cual es una implementación de una
capa superior.
3. Capa 3 Gestión de memoria: Este nivel administra la memoria principal o memoria
RAM, se encarga de asignar los bloques de memoria a los procesos y de liberarlos
cuando los procesos han terminado, así también se encarga de retirar algunos procesos
de la memoria y almacenar una imagen de ellos en el disco duro, con la finalidad de
simular que existe mas memoria de la que realmente existe de forma física, el cual es un
proceso que denominamos memoria virtual.
63. Modelo de Capas SO
4. Capa de Sistema de archivos: Esta capa
proporciona las funciones necesarias para
almacenar la información en archivos, se
apoya en las primitivas de la capa2 y la
decisión de que procesos hacen uso de
memoria se ubican en esta capa.
5. Capa 3 Intérprete de comando: En esta
ultima capa se ubica la interfaz visible para
el usuario, ya sea como una línea de
comando o como una GUI (Interfaz Gráfica
de Usuario), con la cual el usuario comunica
y que esta capa traduce al conjunto de
primitivas de las capas anteriores.
64. SERVIDORES
En palabras simples es una PC que brinda un servicio a los ordenadores que posean una conexión y la
configuración adecuada hacia el mismo. Se lo puede analizar desde 2 perspectivas:
Definición Servidor (hardware): Es una máquina física integrada en una red informática en la que, además
del sistema operativo, funcionan uno o varios servidores basados en software. Una denominación alternativa
para un servidor basado en hardware es "host" (término inglés para "anfitrión"). En principio, todo
ordenador puede usarse como "host" con el correspondiente software para servidores.
Definición Servidor (software): Es un programa que ofrece un servicio especial que otros programas
denominados clientes (clients) pueden usar a nivel local o a través de una red. El tipo de servicio depende del
tipo de software del servidor. La base de la comunicación es el modelo cliente-servidor y, en lo que concierne
al intercambio de datos, entran en acción los protocolos de transmisión específicos del servicio.
65. DATA CENTER
Un conjunto organizado y bien diseñado de
varios servidores, es considerado un “Data
Center”.
Data Center: Un datacenter es una
infraestructura física o virtual utilizada para
alojar sistemas informáticos que puedan
procesar, servir o almacenar datos. Data
Center dan servicio de almacenamiento de
datos, respaldo o backup, recuperación de
datos y gestión de la información para
empresas
67. Tipos de Sistemas Operativos
El sistema operativo es el encargado de realizar todas las tareas básicas como la gestión de
archivos, procesos y memoria.
Así que en síntesis se encarga de administrar todos los recursos, y funciona como una
interfaz entre el usuario y la máquina. Hay varios tipos de sistemas operativos y algunos son
más utilizados que otros.
68. Sistemas en Lote (Batch Systems)
Es un tipo de sistema operativo que no interactúa directamente con la computadora. En su
lugar, hay un operador que acepta trabajos similares y los agrupa en lotes. El operador se
encarga de clasificar los trabajos con necesidades similares.
VENTAJAS
• Con otros sistemas operativos es muy difícil adivinar o saber el tiempo requerido por
cualquier trabajo a completar. Los procesadores de los sistemas por lotes saben cuánto
tiempo duraría el trabajo cuando está en cola.
• Múltiples usuarios pueden compartir los sistemas por lotes.
• El tiempo de inactividad del sistema por lotes es muy inferior.
• Es fácil gestionar grandes trabajos repetidamente en sistemas por lotes.
69. Sistemas en Lote (Batch Systems)
DESVENTAJAS
• Los operadores de computadoras deben ser bien conocidos por estos sistemas.
• Son difíciles de depurar.
• Algunas opciones son costosas.
• Los otros trabajos tendrán que esperar un tiempo desconocido si falla alguna ejecución.
70. Sistema operativo de tiempo compartido
Varias tareas se pueden ejecutar al mismo tiempo y funcionar sin problema. También se les
llama sistemas multitarea, y las tareas pueden ser de un solo usuario o de diferentes
usuarios. El tiempo que cada tarea llega a ejecutar se llama quantum. Una vez transcurrido
este intervalo de tiempo, el sistema operativo cambia a la siguiente tarea.
VENTAJAS
• Cada tarea recibe atención por igual.
• Menos posibilidades de duplicación de software.
• El tiempo de inactividad de la CPU se puede reducir.
71. Sistema operativo de tiempo compartido
DESVENTAJAS
• Problema de confiabilidad.
• Se debe cuidar por sí mismo la seguridad e integridad de los programas y datos del
usuario.
• Problema de comunicación de datos.
72. Sistema operativo distribuido
Es un avance reciente en el mundo de la tecnología informática, está siendo ampliamente
aceptado a un gran ritmo. Su funcionamiento consiste en varias computadoras
interconectadas autónomas se comunican entre sí mediante una red de comunicación
compartida. Los sistemas independientes poseen su propia unidad de memoria y CPU, y son
referidos como sistemas acoplados libremente o sistemas distribuidos.
Existen varios tamaños y tipos de funciones. Muchos eligen este tipo de sistema porque
permite a los usuarios acceder a los archivos o software que no están realmente presentes
en su sistema pero en algún otro sistema conectado dentro de esta red. Es decir, ofrece la
posibilidad de acceso remoto dentro de los dispositivos conectados en esa red.
73. Sistema operativo distribuido
VENTAJAS
• Una falla no afectará la comunicación de la otra red, ya que todos los sistemas son independientes entre sí.
• El correo electrónico aumenta la velocidad de intercambio de datos.
• Dado que los recursos se comparten, el cálculo es muy rápido y duradero.
• La carga host en la computadora se reduce.
• Estos sistemas son fácilmente escalables ya que muchos sistemas se pueden agregar fácilmente a la red.
• Se reduce el retraso en el procesamiento de datos.
DESVENTAJAS
• El fallo de la red principal detendrá toda la comunicación.
• No hay un lenguaje bien definido para establecer sistemas distribuidos todavía.
• Estos tipos de sistemas no están fácilmente disponibles, pues son bastante costosos. Sumado al hecho de
que el software subyacente es altamente complejo y aún no se comprende bien.
74. Sistema operativo de red
Estos sistemas se administran en un servidor y a través de ellos se puede administrar datos,
usuarios, grupos, seguridad, aplicaciones y otras funciones de red. También se permite el acceso
compartido de archivos, impresoras, seguridad, aplicaciones y otras funciones de red, por medio de
una pequeña red privada.
Todos los usuarios conocen bien la configuración subyacente, de todos los demás usuarios dentro de
la red, sus conexiones individuales, etc. por eso se les llama sistemas estrechamente acoplados.
VENTAJAS
• Las nuevas tecnologías y la actualización de hardware se integran fácilmente en el sistema.
• Servidores centralizados altamente estables.
• Las preocupaciones de seguridad se manejan a través de servidores.
• Se puede acceder al servidor es posible de forma remota desde diferentes ubicaciones y tipos de
sistemas.
75. Sistema operativo de red
DESVENTAJAS
• Los servidores son costosos.
• El usuario depende de la ubicación central para la mayoría de las operaciones.
• Se requiere mantenimiento y actualizaciones constantes.
• Ejemplos de sistemas operativos de red: Novell NetWare y BSD, Microsoft Windows Server 2003,
Microsoft Windows Server 2008, Mac OS X, UNIX, Linux, etc.
76. Sistema operativo en tiempo real
Como su nombre lo indica, funciona en tiempo real. El intervalo de tiempo requerido para procesar
y responder a las entradas es muy pequeño, y se le llama tiempo de respuesta. Estos son los
sistemas operativos que se utilizan cuando hay requisitos de tiempo muy estrictos, como los que
utilizan los misiles, sistemas de control de tráfico aéreo, robots, etc.
A su vez, el sistema operativo en tiempo real se divide en dos tipos:
Sistemas duros en tiempo real: se utilizan en aplicaciones donde las restricciones de tiempo son
muy estrictas, sin oportunidad de retraso. Están diseñados para salvar vidas, como paracaídas
automáticos o bolsas de aire, que deben estar disponibles en caso de accidente. Rara vez estos
sistemas incorporan la memoria virtual.
Sistemas blandos en tiempo real: son los sistemas donde las restricciones de tiempo no son tan
estrictas.
77. Sistema operativo en tiempo real
VENTAJAS
• Consumo máximo de dispositivos y sistemas, y más salida de todos los recursos.
• El tiempo asignado para el cambio de tareas en estos sistemas es muy inferior, unos 3
microsegundos.
• El enfoque en la ejecución de aplicaciones y menos importancia para las aplicaciones que
están en cola.
• Sistema operativo en tiempo real también se puede utilizar en sistemas integrados como
en el transporte y otros.
• Estos tipos de sistemas están libres de errores.
• La asignación de memoria se administra mejor en este tipo de sistemas.
78. Sistema operativo en tiempo real
DESVENTAJAS
• Muy pocas tareas pueden ejecutarse al mismo tiempo y su concentración es muy inferior
en pocas aplicaciones para evitar errores.
• Los recursos de sistema no son tan buenos y son costosos.
• Los algoritmos son muy complejos y difíciles de escribir para el diseñador.
• Depende de controladores de dispositivo específicos y señales de interrupción para
responder lo más pronto posible a las interrupciones.
• No es recomendable establecer la prioridad de los subprocesos, ya que estos sistemas
son menos propensos a cambiar de tareas.
Ejemplos de sistemas operativos en tiempo real son: sistemas de control industrial,
experimentos científicos, sistemas de armas, robots, sistemas de control de tráfico aéreo,
sistemas de imágenes médicas, etc.
79. SO Comerciales
Windows
Distintos tipos:
– Para servidores: NT Server, 2000 Server, Server 2003, Server 2008, Server 2012, Server
2016, Server 2019
– Para clientes o domésticos: 2000, XP Home, Vista Home
– Para equipos especiales (PDA’s, móviles, etc.): CE, Mobile
UNIX
Distintas versiones y distribuciones:
– Unix (SUN)
– Linux (Gratis)
– Aix (IBM)
82. ¿Qué es un proceso?
Todos los programas, cuya ejecución solicitan los usuarios, se ejecutan en forma de
procesos, de ahí la importancia de conocerlos en detalle. El proceso se puede definir como
un programa en ejecución y, de una forma un poco más precisa, como la unidad de
procesamiento gestionada por el sistema operativo.
El SO mantiene por cada proceso una serie de estructuras de información que permiten
identificar las características de éste, así como los recursos que tiene asignados. En esta
última categoría entran los descriptores de los segmentos de memoria asignados, los
descriptores de los archivos abiertos, los descriptores de los puertos de comunicaciones,
etc.
El sistema operativo mantiene una tabla de procesos con todos los BCP (Bloque de control
de procesos). Por razones de eficiencia, la tabla de procesos se construye normalmente
como una estructura estática, que tiene un determinado número de BCP.
83. BCP Bloque de control de procesos
Es un registro especial donde el sistema
operativo agrupa toda la información que
necesita conocer respecto a un proceso
particular. Cada vez que se crea un proceso el
sistema operativo crea el BCP
correspondiente para que sirva como
descripción en tiempo de ejecución durante
toda la vida del proceso.
Cuando el proceso termina, su BCP es borrado
y el registro puede ser utilizado para otros
procesos. Un proceso resulta conocido para el
sistema operativo y por tanto elegible para
competir por los recursos del sistema sólo
cuando existe un BCP activo asociado a él.
84. BCP Bloque de control de procesos
El BCP es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del
proceso y de la utilización de recursos. La información almacenada en un BCP incluye típicamente algunos o
todos los campos siguientes:
• Identificador del proceso (Process Identificator -PID-, de sus siglas en inglés).
• Estado del proceso. Por ej.: listo, en espera, bloqueado.
• Contador de programa: dirección de la próxima instrucción a ejecutar.
• Valores de registro de CPU. Se utilizan también en el cambio de contexto.
• Espacio de direcciones de memoria.
• Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.
• Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
• Estadísticas del proceso.
• Datos del propietario (owner).
• Permisos asignados.
85.
86. Tipos de Procesos
La clasificación se puede realizar bajo disntintos criterios:
Según su diseño:
Reutilizables: se cargan en memoria cada vez que se usan. Los programas de usuario
suelen ser de este tipo.
Reentrantes: se carga una sola copia del código en memoria. Cada vez que se usan se
crea un nuevo proceso con su zona de datos propia, pero compartiendo el código.
Según su acceso a CPU y recursos:
Apropiativo: acceden a los recursos y sólo los abandonan de forma voluntaria
(mediante instrucción CPU).
No apropiativo: permiten a otros procesos apropiarse de los recursos que ahora
poseen.
87. Tipos de Procesos
Según su permanencia en memoria:
Residentes: tienen que permanecer en memoria durante toda su evolución (desde
creación hasta terminación).
Intercambiables: es lo más normal. El SO puede decidir llevarlos a disco a lo largo de
su evolución.
Según su privilegio (solo presente en algunos SO):
Privilegiado: se ejecutan en modo supervisor.
No privilegiado: los que normalmente ejecuta el usuario.
Según su propietario:
P. de usuario: son los diseñados por los usuarios. Se ejecutan en modo no protegido.
P. del sistema: son los que forman parte del SO (de E/S, de planificación de otros
procesos, etc).
89. ¿Cómo el SO gestiona los procesos?
Para realizar la gestión de procesos el SO realiza 4 procesos básicos:
1. Antes que nada, cargar el código en memoria
2. El mismo programa puede dar lugar a varios procesos. Necesitará identificarlos:
descriptor de proceso.
3. Si no está siendo ejecutado, necesitará guardar información de ejecución: registros, pila,
recursos que está usando, etc.
4. Necesitará saber la lista de procesos que tiene y el estado en el que están.
Normalmente, usa colas de descriptores de procesos, una para cada estado o incluso
para cada dispositivo E/S.
90.
91. Estados de un proceso
Para identificar el estado actual de un proceso se emplea la siguiente
terminología:
• Preparado o listo (ready)
• Corriendo o en ejecución (running)
• Bloqueado (blocked) o dormido (asleep) o en espera (waiting).
• Suspender (swap out) = enviar el proceso a área de intercambio
(swap)
• Reanudar (swap in) = traer el proceso desde área de intercambio a
memoria
92. Transición de un estado a otro
Paso a preparado: puede haber 4 causas
Creación: acaba de cargarse el programa en memoria e iniciamos el proceso
Desde ejecución: porque la CPU va a pasar a ejecutar otro proceso (cambio
de contexto).
Desde bloqueado: porque acabó una operación E/S por la que estaba
esperando.
Desde suspendido-listo: porque el SO decide traérselo a memoria
(reanudarlo) y ya estaba preparado antes.
93. Transición de un estado a otro
Paso a ejecución: se toma el primero de la cola de preparados cuando el reloj
haya interrumpido el que estaba en ejecución.
Paso a bloqueado: bien desde ejecución, al solicitar E/S o bien desde
suspendido-bloqueado porque volvió a memoria (reanudación) pero no acabó
E/S.
Paso a suspendido-listo o suspendido-bloqueado: el SO puede decidir
suspender un proceso parado (ya sea listo o bloqueado), pasando al estado
correspondiente en cada caso.
96. Planificación de Procesos
Conjunto de políticas y mecanismos incorporados al sistema operativo, a través de un módulo
denominado planificador, que debe decidir cuál de los procesos en condiciones de ser ejecutado
conviene ser despachado primero y qué orden de ejecución debe seguirse. Esto debe realizarse sin
perder de vista su principal objetivo que consiste en el máximo aprovechamiento del sistema, lo que
implica proveer un buen servicio a los procesos existentes en un momento dado.
Un proceso es un programa en ejecución. Existen 3 estados en los que puede encontrarse un
proceso, estos son: "Listo", "Bloqueado" y "En ejecución". Para el control de los mismos
internamente son almacenados en una lista, cada uno de los nodos guarda información de un
proceso. En esa información se almacena, entre otros aspectos, el estado en que se encuentra el
proceso, el tiempo que el proceso ha usado el CPU, e información de E/S (entrada/salida). Los
sistemas operativos cuentan con un componente llamado planificador, que se encarga de decidir
cuál de los procesos hará uso del procesador. La toma de esta decisión, así como el tiempo de
ejecución del proceso, estará dada por un algoritmo, denominado Algoritmo de Planificación.
97. Objetivos de la Planificación de procesos
La Planificación de procesos tiene como principales objetivos la equidad, la eficacia, el
tiempo de respuesta, el tiempo de regreso y el rendimiento.
• Equidad: Todos los procesos deben ser atendidos.
• Eficacia: El procesador debe estar ocupado el 100% del tiempo.
• Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes del usuario
debe ser el menor posible.
• Tiempo de regreso: Reducir al mínimo el tiempo de espera de los resultados esperados
por los usuarios por lotes.
• Rendimiento: Maximizar el número de tareas que se procesan por cada hora.
98. Algoritmos de Planificación
1. Primero en llegar primero en ser servido (FCFS First Come First
Served)
2. Prioridad al más corto (SJF Shortest Job First)
3. Round Robin
4. Planificación por prioridad
5. Planificación de Colas Múltiples (MQS Multilevel Queue
Schedulling)
99. Algoritmos de Planificación
Primero en llegar primero en ser servido (FCFS First Come First Served)
Conocido como FCFS (First Come First Served). Este algoritmo emplea una cola de procesos,
asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso llega es
puesto en su lugar en la cola después del que llegó antes que él y se pone en estado de listo.
Cuando un proceso comienza a ejecutarse no se interrumpe su ejecución hasta que termina
de hacerlo.
• Los procesos son ejecutados en el orden que llegan a la cola de procesos listos.
• La implementación es fácil a través de una cola FIFO.
• Es adecuado para sistemas por lotes (batch).
• Es un algoritmo no expropiativo: una vez que el procesador le es asignado a un proceso
este lo mantiene hasta que termina o se bloquea (por ejemplo al generar un pedido de
E/S).
• El tiempo de espera promedio por lo general es alto.
101. Algoritmos de Planificación
Prioridad al más corto (SJF Shortest Job First)
El proceso que se encuentra en ejecución cambiará de estado voluntariamente, o sea, no
tendrá un tiempo de ejecución determinado para el proceso. A cada proceso se le asigna el
tiempo que usará cuando vuelva a estar en ejecución, y se irá ejecutando el que tenga un
menor tiempo asignado. Si se da el caso de que dos procesos tengan igual valor en ese
aspecto emplea el algoritmo FCFS.
• El algoritmo asocia a los procesos el largo de su próximo CPU-burst.
• Cuando el procesador queda disponible se le asigna al proceso que tenga el menor CPU-
burst.
• Si dos procesos tiene el mismo CPU-burst se desempata de alguna forma.
• Su funcionamiento depende de conocer los tiempos de ejecución lo cual en la mayoría de
los casos no sucede.
• Es adecuado para sistemas por lotes (batch).
102. Algoritmos de Planificación
Prioridad al más corto (SJF Shortest Job First)
Dos esquemas:
• No expropiativo: una vez que se le asigna el procesador a un proceso no se
le podrá quitar.
• Expropiativo: Si un nuevo proceso aparece en la lista de procesos listos con
menor CPU burst, se le quita la CPU para asignarla al nuevo proceso.
Este algoritmo es óptimo para el tiempo de espera, pero requiere que todos
los procesos participantes estén al comienzo (si no es expropiativo) y además
hay que saber el tiempo del próximo CPU-burst.
Es usado para planificación de largo plazo más que para planificación de corto
plazo.
104. Algoritmos de Planificación
Round Robin
A cada proceso se le asigna un tiempo determinado para su ejecución, el mismo tiempo para todos.
En caso de que un proceso no pueda ser ejecutado completamente en ese tiempo se continuará su
ejecución después de que todos los procesos restantes sean ejecutados durante el tiempo
establecido. Este es un algoritmo basado en FCFS que trata la cola de procesos que se encuentran en
estado de listos como una cola circular.
• A cada proceso se le brinda un intervalo de tiempo para el uso del procesador (time quantum).
• Al finalizar el tiempo, el procesador le es expropiado y vuelve al estado pronto (ready) al final de la cola.
• Es fácil de implementar ya que solamente es necesario una cola de procesos listos. Cuando un proceso
consume su quantum es puesto al final de la cola.
• El quantum debe ser bastante mayor a lo que lleva realizar un cambio de contexto, sino se tendrá mucho
overhead. A su vez, el tiempo de quantum incide en los tiempos de retorno.
• Es ideal para sistemas de tiempo compartido.
• No hay posposición indefinida
106. Algoritmos de Planificación
Planificación por prioridad
En este tipo de planificación a cada proceso se le asigna una prioridad siguiendo un criterio
determinado, y de acuerdo con esa prioridad será el orden en que se atienda cada proceso.
108. Algoritmos de Planificación
Planificación de Colas Múltiples (MQS Multilevel Queue Schedulling)
En este algoritmo la cola de procesos que se encuentran en estado de listos es dividida en
un número determinado de colas más pequeñas. Los procesos son clasificados mediante un
criterio para determinar en qué cola será colocado cada uno cuando quede en estado de
listo. Cada cola puede manejar un algoritmo de planificación diferente a las demás.
• Si los procesos se pueden clasificar según sus cualidades, es posible dividir la lista de
procesos listos (ready queue) en varias colas (una para cada clasificación).
• Los procesos son asignados permanentemente a una de las colas.
• Cada cola tendrá su propio algoritmo de planificación.
• Además, se debe tener una estrategia de planificación entre las diferentes colas. Por
ejemplo, una cola tendrá prioridad sobre otra.
111. Tiempos
En la Planificación de procesos se tiene en cuenta diferentes tiempos que pueden ser
calculados, como son el "Tiempo de espera medio", el "Tiempo de retorno del proceso" y el
"Tiempo de retorno medio".
Tiempo de espera medio
• Es el promedio de tiempos en que los procesos están en estado de listos. En algoritmos
FCFS este tiempo suele ser bastante largo. En algoritmos SJF para los procesos largos este
tiempo suele ser muy grande, pues se estarán ejecutando constantemente los procesos
más cortos y los más largos se encontrarán constantemente en espera, por lo que pueden
entrar en inanición. En Planificación por prioridad los procesos de prioridad baja podrían
no ejecutarse nunca. Para dar solución a este problema el envejecimiento de un
programa eleva su prioridad.
112. Tiempos
Tiempo de retorno del proceso
• Es el tiempo que transcurre desde la creación de un proceso hasta que termina la
ejecución del programa que le dio lugar.
Tiempo de retorno medio
• Es la suma de los tiempos de retorno de cada uno de los procesos dividida entre la
cantidad de procesos.
116. Sistema de Gestión de Archivos
Un sistema de archivos (FS File System) es un componente del SO que
proporciona la organización para la creación, el almacenamiento y el acceso a
conjuntos de datos con nombre: archivos.
Una de las principales tareas del sistema operativo es proporcionar
comodidad al usuario cuando trabaja con datos almacenados en discos. Para
hacer esto, el sistema operativo reemplaza la estructura física de los datos
almacenados con un modelo lógico fácil de usar, que se implementa en forma
de un árbol de directorios que se muestra en utilidades como Norton
Commander, Far Manager o Windows Explorer. El elemento básico de este
modelo es un archivo que, al igual que el sistema de archivos en su conjunto,
se puede caracterizar tanto por su estructura lógica como física.
118. Gestión de Archivos
Un archivo es un área con nombre de memoria
externa para leer y escribir datos.
Los archivos se almacenan en la memoria
independientemente de la fuente de alimentación.
Una excepción es un disco electrónico cuando se
crea una estructura en el sistema operativo que
simula un sistema de archivos.
Un sistema de archivos (FS) es un componente del
sistema operativo que proporciona la organización
de la creación, el almacenamiento y el acceso a
conjuntos de datos con nombre: archivos.
119. Gestión de Archivos
El sistema de archivos incluye las siguientes funciones básicas:
• Gestionar la colección de todos los archivos en el disco.
• Establecer conjuntos de estructuras de datos utilizadas para administrar
archivos (directorios de archivos, descriptores de archivos, tablas de
asignación de espacio libre y ocupado en disco).
• Poseer un complejo de software de sistema que implementa varias
operaciones en archivos: creación, destrucción, lectura, escritura,
nomenclatura, búsqueda.
120. Gestión de Archivos
Las tareas resueltas por el FS dependen del método de organización del
proceso informático en su conjunto. El tipo más simple es FS en sistemas
operativos de usuario único y de programa único. Las funciones principales en
un FS de este tipo están destinadas a resolver los siguientes problemas:
• Nombramiento de archivos.
• La interfaz del programa para aplicaciones.
• Mapeo del modelo lógico del FS a la organización física del almacén de
datos.
• Estabilidad FS ante fallas de energía, errores de hardware y software.
121. Gestión de Archivos
El objetivo principal del sistema de archivos y su correspondiente sistema de
administración de archivos es organizar una conveniente gestión organizada
de estos: en lugar de un acceso de bajo nivel a los datos que indican
direcciones físicas específicas del registro que necesitamos, el acceso lógico se
utiliza con el nombre y el registro del archivo.
Deben distinguirse los términos "sistema de archivos" y "sistema de gestión de
archivos": el primero tiene que ver con los principios de acceso a los datos
organizados como archivos. Y el segundo está relacionado con la
implementación específica del sistema de archivos, es decir este es un
conjunto de módulos de software que proporcionan trabajo con archivos en
un sistema operativo específico.
122. Tipos de Archivo
Archivos regulares: contienen información arbitraria que el usuario ingresa en
ellos o que se forma como resultado del trabajo del sistema y los programas
del usuario. El contenido de un archivo normal está determinado por la
aplicación que trabaja con él.
123. Tipos de Archivo
Los archivos normales pueden ser de dos tipos:
Software (ejecutable): son programas escritos en el lenguaje de comandos del sistema
operativo y realizan algunas funciones del sistema (tienen extensiones .exe, .com, .bat,
.msi).
Archivos de datos: todos los demás tipos de archivos: textos y documentos gráficos, hojas
de cálculo, bases de datos, etc.
Los directorios son un grupo de archivos combinados por el usuario por algunas razones
(por ejemplo, archivos que contienen programas de juegos o archivos que componen un
paquete de software) y, por otro lado, este es un tipo especial de archivo que contiene
información de ayuda del sistema sobre un conjunto de archivos agrupados por usuarios de
acuerdo con algún atributo informal (tipo de archivo, su ubicación en el disco, derechos de
acceso, fecha de creación y modificación).
124. Tipos de Archivo
Los archivos especiales son archivos ficticios asociados con dispositivos de entrada / salida
que se utilizan para unificar el mecanismo de acceso a archivos y dispositivos externos. Los
archivos especiales permiten al usuario realizar E / S a través de los comandos habituales
de escritura o lectura desde archivos. Estos comandos son procesados primero por los
programas FS y luego, en alguna etapa de la ejecución de la consulta, el sistema operativo
se convierte en comandos para controlar el dispositivo correspondiente (PRN, LPT1 para el
puerto de impresora - los nombres simbólicos para el sistema operativo son archivos, - USB
para el teclado).
La gestión de archivos se da en la organización, almacenamiento y el acceso al conjuntos
de estos, de modo que al cumplir con sus funciones garanticen el cuidado y protección de
la información que manejen. Por ello es importante conocer y aplicar este tipo de
operaciones.
125. Atributos de un archivo
• Nombre: la única información en formato legible por una persona
• Identificación única del archivo y del usuario: descriptor interno del
archivo, dueño y grupo del archivo
• Tipo de archivo: necesario en sistemas que proporciona distintos formatos
de archivos
• Tamaño del archivo: número de bytes en el archivo, máximo tamaño
posible, etc.
• Protección: control de accesos y de las operaciones sobre archivos
• Información temporal: de creación, de acceso, de modificación, etc.
• Información de control: archivo oculto, de sistema, normal o directorio, etc.
126. Atributos de un archivo
• Campo: Es un elemento de información, el cual contiene un valor fijo, un
tipo de dato y una longitud.
• Registro: Es el conjunto de campos, los cuales deben mantener una relación
categórica, con el fin de ser establecidos como unidades.
• Base de datos: Son el conjunto de datos que hacen parte de una misma
categoría. Las bases de datos son registradas y almacenadas de manera
sistemática y organizada, garantizando su posterior acceso.
127. Atributos de un archivo
• Nombre: la única información en formato legible por una persona
• Identificación única del archivo y del usuario: descriptor interno del
archivo, dueño y grupo del archivo
• Tipo de archivo: necesario en sistemas que proporciona distintos formatos
de archivos
• Tamaño del archivo: número de bytes en el archivo, máximo tamaño
posible, etc.
• Protección: control de accesos y de las operaciones sobre archivos
• Información temporal: de creación, de acceso, de modificación, etc.
• Información de control: archivo oculto, de sistema, normal o directorio, etc.
129. Sistemas de Archivos
Conjunto de normas y procesos que se utilizan para almacenar la información.
Se le denomina “sistema de archivos” porque cada archivo contiene unos
datos independientes, por lo que es necesario que la información que
contiene cada archivo se agrupe con cierto orden.
Para ello, el sistema operativo utiliza las carpetas o directorios con el fin de
organizar todas las rutas y localizar la información contenida en el disco duro.
En conclusión, el sistema de archivos de un sistema operativo es el que
organiza todos los datos contenidos en el disco duro de una forma
determinada. Ya no sólo eso, sino que cada unidad de almacenamiento tiene
un sistema de archivos que es impuesto tras su formato.
130. Sistemas de Archivos
Los principales tipos sistemas de archivos que encontramos son los siguientes:
• NTFS (New Technology File System).
• HPFS (High Performance File System).
• EXT (Extended file System).
• HFS+ (Hierarchical File System).
• APFS (Apple File System).
• FAT (File Allocation Table).
• exFAT (Extended File Allocation)
• FAT32
131. NTFS
Se trata de un sistema de archivos que fue introducido en 1993. Está basado en el antiguo
sistema que usaba IBM (HPFS), que también fue usado en Mac OS. Ese sistema de archivos
quedó atrás y ha sido sucedido por NTFS.
Actualmente, es el sistema de archivos que Windows utiliza por defecto en los discos duros
cuando instalamos su sistema operativo en un SSD o HDD. Está caracterizado por no tener
límites de tamaño por archivo y es una opción ideal para unidades de almacenamiento con
gran capacidad que se vayan a utilizar en Windows.
Teóricamente, NTFS ofrece un tamaño de archivo de 16 EB, que equivalen a 16.000’000.000
GB. Entre sus características más importantes, encontramos las siguientes:
• Compatibilidad con archivos dispersos.
• Cuotas de uso.
• Cifrado de archivo independiente.
132. NTFS
NTFS está soportado tanto en escritorio, como en sistemas operativos para servidores (Linux,
principalmente). El problema viene con la incompatibilidad que presenta en otros sistemas
operativos, como Mac donde podemos leer toda la información de una unidad NTFS, pero no
podemos escribir en ella.
Ventajas:
• No tiene límite por archivo.
• Es un sistema ideal para unidades que se utilicen en Windows.
• Desde Mac se puede leer toda la información.
• Es compatible con GNU/Linux.
Desventajas:
• En Mac no podremos escribir en un NTFS, ni es un SO compatible con este sistema.
• En TVs antiguas, los USB tenían que ser FAT32, pero es algo casi extinto.
133. HFS+ y APFS
Estamos ante el sistema de archivos por defecto de Apple, al igual que NTFS es el de
Windows. Curiosamente, también tenían este formato los iPods y las particiones se
denominan HFS Extended o Mac OS Extended. Se le denomina “+” o “plus” porque es una
evolución de HFS, el cual tenía un soporte limitado en relación al tamaño de los archivos.
Con HFS+ podemos nombrar a un fichero con hasta 255 caracteres. Mejora a HFS usando
una tabla de asignación de 32 bits, algo que era necesario cuando se empezó a estandarizar
los archivos de 1 GB. Así que, HFS+ soporta un archivo de hasta 8 EB.
Este sistema se ha quedado atrás porque le ha sucedido APFS, que es el sistema de archivos
por defecto de Mac desde macOS 10.13 en adelante. Éste ha mejorado la encriptación, el
espacio compartido o la redimensión de las carpetas. La diferencia principal de APFS es que
se enfoca en SSD o almacenamiento Flash, pero se puede utilizar en HDD igualmente.
134. HFS+ y APFS
Ventajas:
• No tiene límite por archivo.
• Sistema ideal para dispositivos Mac o para usar macOS.
• Es compatible con GNU/Linux.
Desventajas:
• No son detectados por Windows, ni lectura, ni escritura. La única forma es utilizando
programas de terceros.
• Los discos duros con este sistema pueden no ser detectados en medios de reproducción
(TV, DVD, etc.).
135. FAT32
En 1996 llegó FAT32 como un sistema ideal para dispositivos portátiles porque contiene una
limitación de tamaño por archivo de 4 GB, independientemente de que nuestro pendrive
tenga 128 GB. Su principal baza es la altísima compatibilidad que presenta en cualquier
sistema operativo o medios de reproducción. Lleva con nosotros desde Windows 95 y
sustituyó a FAT16.
FAT significa “File Allocation Table” y es famoso por ser un sistema de archivos viejo,
robusto y algo anticuado. Entre sus limitaciones más remarcables, encontramos las
siguientes:
• No se pueden almacenar archivos individuales de 4 GB.
• Una partición FAT32 no puede ser superior a 8 TB.
136. FAT32
En un principio, era ideal para memorias USB porque éstas no tenían más de 16 GB y era
raro ver archivos individuales que pesaran más de 4 GB. No obstante, la actualidad “le
pesa” bastante porque supone una limitación importante. Pensad que, ahora, es muy
común ver archivos de 4 GB o más, como hay pendrives de 128 GB.
Ventajas:
• Compatible con todos los SO, videoconsolas, televisiones, etc.
• Perfecto para unidades pequeñas con archivos pequeños.
Desventajas:
• Limitación de 4 GB por archivo.
• Partición inferior a 8 TB.
137. exFAT
Es el sucesor de FAT32, ya que éste último se ha quedado algo desfasado.
Nace en 2006 de la mano de Windows XP y Vista. Es la evolución de FAT32
porque se elimina las limitaciones que tenía FAT32. Además, es compatible
con Windows y Mac, por lo que es perfecto para aquellos discos duros
externos que queráis utilizar en ambos sistemas operativos.
No presenta una alta disponibilidad con Linux, ya que requiere una instalación
de un software específico. Igualmente, no podremos crear una partición
desde Linux, si el sistema de archivos es exFAT. Por tanto, sólo podremos
escribir y leer datos.
138. exFAT
Ventajas:
• Es compatible con Windows y Mac.
• Ideal para pendrives y discos duros externos que se usen en ambos SO.
• Se eliminan las limitaciones de FAT32.
Desventajas:
No es del todo compatible con Linux.
Puede no ser compatible con ciertos medios de reproducción.
139. FAT
Es un muy antiguo sistema de archivos y a la vez poco utilizado. Sin embargo, es compatible
con Windows y Mac, por lo que puede ser útil para unidades que tengan una capacidad de
hasta 32 GB. Como su nombre indica, es una tabla de asignación de archivos, pero es
descartado por la cantidad de limitaciones que tiene:
• Si se va la luz o hay una bajada de tensión, pueden dañarse todos los datos fácilmente.
• Tiene la limitación de tamaño por archivo. FAT 16 tiene un límite de 2 GB.
• No tiene permisos de seguridad.
• Los formatos pueden no dejar limpia la unidad, lo que supone una pérdida de
rendimiento a la larga.
Como es lógico, presenta más desventajas que ventajas porque existen alternativas como
FAT32 o exFAT mucho más interesantes para el día de hoy.
140. Bibliografía
• Hidalgo, B. (2010). FUNDAMENTOS DE SISTEMAS OPERATIVOS. En SISTEMAS OPERATIVOS (pp. 1–
91).
• Silberchatz, A., Baer Galvin, P., & Gagne, G. (2004). Fundamentos de Sistemas Operativos (7a ed.).
https://rinapilar.files.wordpress.com/2014/02/fundamentos-de-sistemas-operativos-silbertchatz.pdf
• Tanenbaum, A., & Stallings, W. (2003). Sistemas operativos: aspectos internos y principios de diseño
traducción y revisión técnica. En Pearson education.
http://cotana.informatica.edu.bo/downloads/Sistemas Operativos.pdf
• https://www.profesionalreview.com/2018/11/06/que-es-disco-duro-funciona/
• http://jaimesegundo.edu.gva.es/web_mestre.inf/treball/si/disco_duro.htm#:~:text=El%20sector%20d
e%20arranque%20es,inicializaci%C3%B3n%2C%20llamado%20tambi%C3%A9n%20Master%20Boot.
• https://w3.ual.es/~acorral/DSO/Tema_3.pdf
• https://hardzone.es/reportajes/que-es/bios-pc/
• https://www.hostinger.es/tutoriales/que-es-
cli/#:~:text=En%20pocas%20palabras%2C%20CLI%20significa,para%20que%20realice%20tareas%2
0espec%C3%ADficas.&text=Los%20principiantes%20se%20muestran%20reacios,es%20solo%20para
%20usuarios%20avanzados.
• https://rootear.com/windows/cmd-vs-powershell