lunes, 29 de octubre de 2018

Bloque de control de proceso (BCP)

El bloque de control del proceso (BCP) o en inglés PCB (Process Control Block) 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. El bloque de control de proceso 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.
  • Signals pendientes de ser servidos. (Almacenados en un mapa de bits).

En Linux, la información se presenta de esta manera:

/* memory management info */
     struct mm_struct *mm;
/* open file information */
 struct files_struct *files;
/* tss for this task */
 struct thread_struct tss;
 int pid;
 volatile long state; /* -1 unrunnable, 0
runnable, >0 stopped */
 long priority;
 unsigned short uid,euid,suid,fsuid;
#ifdef __SMP__
 int processor;
#endif
struct task_struct *p_opptr, *p_pptr,
*p_cptr, *p_ysptr, *p_osptr;
/* limits */
 struct rlimit rlim[RLIM_NLIMITS];
 long utime, stime, cutime, cstime,
start_time; 

En Windows:
  •  KPROCESS and PEB
  •  pid and ppid (the ppid is not visible to Win32)
  •  file name of program
  •  window station - the screen or remote terminal
  •  exit status
  •  create and exit times
  •  links to next process
  •  memory quotas
  •  memory management info
  •  Ports for exceptions and debugging
  •  Security information 

miércoles, 24 de octubre de 2018

Definicion de terminos S.O

  • MS-DOS: primer sistema operativo desarrollado por Microsoft, que consiste en un sistema operativo basado en línea de comandos.
  • Aplicaciones CAD: Programas gráficos para lograr crear una serie de imágenes que conjuntas que crean una imagen más grande conocida como dibujo. 
  • CP/M: fue la evolución lógica del primer sistema operativo para ordenadores con procesadores Intel desde 1973, CP/M (Control Program for Microprocessors).
  • Unix: es un sistema operativo portable, multitarea y multiusuario; desarrollado en 1969 por un grupo de empleados de los laboratorios Bell de AT&T.
  • NeXTSTEP:  Es el sistema operativo orientado a objetos, multitarea que NeXT Computer, Inc. diseñó para ser ejecutados en los computadores NeXT.
  • Linux: GNU/Linux, también conocido como Linux (de forma coloquial y totalmente errónea), es un sistema operativo libre tipo Unix; multiplataforma, multiusuario y multitarea. El sistema es la combinación de varios proyectos, entre los cuales destacan GNU (encabezado por Richard Stallman y la Free Software Foundation) y el núcleo Linux (encabezado por Linus Torvalds). Su desarrollo es uno de los ejemplos más prominentes de software libre: todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera, bajo los términos de la GPL (Licencia Pública General de GNU) y otra serie de licencias libres.
  • Código abierto: Es un modelo de desarrollo de software basado en la colaboración abierta​. Se enfoca más en los beneficios prácticos (acceso al código fuente) que en cuestiones éticas o de libertad que tanto se destacan en el software libre.

lunes, 15 de octubre de 2018

Tema 1 - El sistema informático: software y hardware

Un sistema informático está formado por el Hardware (Parte tangible y física del ordenador) y el Software (Parte intangible), La parte que se encarga de la comunicación entre ellos es el Sistema Operativo que es el software básico que sin él el sistema informático no puede trabajar mientras que el software de aplicaciones es el que procesa la información de forma personalizada por el usuario y no es esencial.

Entre el Software y el Hardware se encuentra el Firmware que es un componente software innato de en cada componente de hardware que es prácticamente invariable a lo largo de la vida de él y que da una serie de instrucciones (pocas pero necesarias) al hardware para que pueda comunicarse con el resto de componentes del sistema informático.

Para que los componentes electrónicos de un ordenador se puedan comunicar hacen falta una serie de instrucciones, ordenadas y agrupadas de forma adecuada que se le denomina programa, un conjunto de programas es una aplicación informática (Que puede ser un solo programa)

Componentes Físicos: Hardware.

La unidad central de proceso o UCP también denominado Procesador es el centro del sistema informático y la parte esencial de él, está dividido en Unidad de control (UC) y unidad aritmético-lógica (UAL). Para que también pueda funcional se requieren otros componentes de hardware.

Unidad de control o UC: Parte pensante del ordenador, se encarga de traer a la memoria (RAM) las instrucciones necesarias para la ejecución de los programas y el procesamiento de los datos. Estos datos/instrucciones se extraen normalmente del almacenamiento externo para interpretar y ejecutar cada una de ellas en el debido instante y correctamente.
Para realizar todo esto dispone de pequeños espacios de almacenamiento llamados registros y otros componentes:

Registro de instrucción: Almacena la instrucción que se está ejecutando
Registro contador de programas: Contiene la dirección de memoria de la siguiente instrucción a ejecutar
Controlador y decodificador: Interpreta la instrucción para su posterior proceso. Extrae el código de operación de la instrucción en curso.
Secuenciador: Genera las microórdenes necesarias para ejecutar la instrucción.
Reloj: Proporciona una sucesión de impulsos eléctricos a  intervalos constantes.

Unidad aritmético-lógica o UAL: Parte de la UCP encargada de realizar operaciones aritméticas y lgicas sobre la información. Los componentes mas importantes son:

Operacional o circuito operacional: Realiza las operaciones con los datos de los registros de entrada.

Memoria ROM.
El significado de memoria ROM es “Read Only Memory” traducido al español “Memoria de solo lectura.” es un circuito integrado de memoria de solo lectura que almacena instrucciones y datos de forma permanente. En la ROM se integra la BIOS del ordenador (Basic Input Output System) o sistema básico de entrada/salida que se encarga de cargar el sistema operativo llevando las operaciones básicas para poder hacer funcionar el ordenador, debido a esto se crearon distintos tipos de ROM:

  • PROM (Programmable ROM) que son programables una vez y después de ser montadas en un equipo



  • EPROM (Erasable Programmable ROM) que permite cambiar la configuración asignada sin realizar operaciones físicas sobre los componentes montados


La configuración de la memoria ROM se guarda en la CMOS (Complementary Metal Oxide Semiconductor) es un tipo de memoria interna del ordenador que consume muy poca energía eléctrica en la que se suele utilizar una pila. Se configura pulsando F2 o SUPR durante el proceso de inicio del ordenador para acceder al SETUP del equipo (En el que se configura la CMOS)

Otros tipos de memoria interna que no son RAM como tal son:
  • VRAM o memoria de vídeo: se utiliza para almacenar las imágenes que se quieren visualizar y se localiza en la tarjeta gráfica del ordenador.
  • SGDRAM: La mayoría de ordenadores incorporan su propia tarjeta o adaptador gráfico que se trata de una memoria de una elevada capacidad, velocidad y bajo consumo
  • CDRAM: Tipo de memoria que actúa entre el procesador y un periférico correspondiente, suele ser utilizada como memoria caché.

Direccionamiento de memoria
Es la situación del componente electrónico dentro del conjunto de componentes de la memoria por lo tanto cuando se accede a la memoria lo que se hace es acceder  a un conjunto de biestables (condensadores). Cada biestable referencia un bit lógico (0,l). El bit se define como la mínima unidad de información.

El direccionamiento es la operacion que se realiza cuando el procesador ejecuta o interpreta una acción. Toda instrucción esta compuesta por un código de operación (suma,resta,...) y un operando (dato que se quiere operar). Según el metodo de direccionamiento la velocidad de ejecución de un programa será menor o mayor, los distintos metodos son:

  1. Direccionamiento inmediato: En la instrucción está incluido directamente el operando o dato.
  2. Direccionamiento directo: En la instrucción, el campo del operando contiene la dirección de memoria donde se encuentra el operando.
  3. Direccionamiento indirecto: El campo del operando contiene una dirección de memoria en la que se encuentra la dirección efectiva del operando.
  4. Direccionamiento relativo: La dirección del dato que interviene en la instrucción se se obtiene sumando a la dirección de la propia instrucción una cantidad fija, que normalmente está contenida en un registro de tipo especial.

Unidades de entrada/salida y buses
Las unidades de entrada y salida sirven para comunicar el procesador y el resto de componentes internos del ordenador con los periféricos de entrada/salida y las memorias de almacenamiento externo.
El bus es el elemento responsable de establecer una correcta interacción entre los diferentes componentes del ordenador, tiene varias categorías:

  • Bus de datos: transmite la información entre la UCP y los periféricos.
  • Bus de direcciones: identifica el dispositivo al que va destinada la información que se transmite por el bus de datos.
  • Bus de control o de sistema: organiza y redirige hacia el bus pertinente la información que se tiene que transmitir.


La estructura física de un ordenador seria la siguiente:

  1. Procesador
  2. Buses
  3. Memoria RAM
Los Periféricos

Los periféricos son dispositivos hardware con los cuales el usuario puede interactuar con el ordenador, almacenar datos y/o programas, imprimir resultados, etc...

Los periféricos se conectan al ordenador (con la UCP y sus componentes) a través de puertos o conectores externos. Esta gestión la lleva a cabo otra parte esencial del ordenador: la unidad de entrada/salida que se pueden dividir en 3 clases: entrada, salida y entrada/salida (ambos).

Periférico de entrada:
Periférico de salida:

Periférico de entrada/salida

Una vez los perifericos están conectados al ordenador por sus respectivos puertos, estos viajan a través de los buses.


  • Periféricos en serie: la información se transmite bit a bit
  • Periféricos en paralelo: la información se transmite Byte a Byte (utilizados normalmente, llegando a 1 Gigabit por segundo)
  • Transmiten información en:
  • Un solo sentido: Simplex
  • Dos sentidos no simultaneamente: Halfduplex o Semiduplex
  • Ambos sentidos simultaneamente: Full duplex o duplex)


Muchos perifericos de entrada/salida necesitan software especial para configurarlo, a esto se le llaman drivers o controladores.

Componentes lógicos: el software

Tipos de datos:

Datos de entrada: son los que se suministran al ordenador desde los periféricos de entrada, o diferentes soportes de información  (CD,etc...) Forman parte de la primera fase del tratamiento automático de la información: entrada.

Datos intermedios: Son aquellos que se obtienen en la segunda fase del tratamiento automático o de la información: proceso.

Datos de salida: llamados resultados, completan el proceso del tratamiento automático de la información: salida.

Otra clasificación puede ser: Datos fijos (constantes) y Datos variables (variables). los fijos serán constantes a través del proceso o programa que se le apliquen a los datos y los variables los que se modifican.