C y siistemas operativos

26

Transcript of C y siistemas operativos

Page 1: C y siistemas operativos
Page 2: C y siistemas operativos

Lenguaje C

C es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix.

C es apreciado por la eficiencia del código que produce.

Es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.

Page 3: C y siistemas operativos

Características

• Las funciones permiten a un programador modularizar un programa.

• Todas las variables declaradas en las definiciones de función son variables locales (son conocidas solo en la función en la cual están definidas).

• La mayor parte de las funciones tienen una lista de parámetros. Los parámetros proporcionan la forma de comunicar información entre funciones.

• Los parámetros de función son también variables locales. • Orientado a la programación de sistemas. • Es altamente transportable. • Es muy flexible. • Genera código muy eficiente .• Es muy expresivo (se pueden realizar muchas funciones

escribiendo pocas líneas de código) .• Es muy poco modular. • Hace pocas comprobaciones .• Da poca disciplina al programador .• Es difícil leer código escrito por otras personas .

Page 4: C y siistemas operativos

Aplicaciones

Gestión de prioridades de planificación. Envío y recepción de señales entre procesos. Generación de segmentos de memoria compartida. Mecanismos de envío de información entre procesos

mediante pipes o tuberías. Envío de información mediante named-pipes, o FIFOs. Envío de información utilizando colas de mensajes. Envío de información entre procesos locales mediante

sockets de familia UNIX. Envío de información entre procesos locales o remotos

mediante sockets de familia INET. Control de acceso a recursos mediante semáforos.

Page 5: C y siistemas operativos

Ventajas de programar en lenguaje C

• Quien puede programar en C podrá, además, escribir sus propias utilidades, simples o complejas, y ejecutarlas como aplicaciones gráficas o como comandos en el sistema, y de esta forma portar esas utilidades de un sistema Linux a otro y continuar utilizándolas.

• Podrá además empaquetar toda su aplicación en un tarball fuente, o código pre-compilado para algún repositorio de distribución, como .deb o .rpm.

• También podrá licenciar su código fuente como GPL o alguna licencia libre, y compartirlo con el resto de la comunidad, y de esta forma obtener aportes retro alimentados o feedback de programadores más experimentados, lo que logrará sin duda que el código aportado crezca mucho más de lo imaginado.

• Quien programe en C/C++ tiene muchísimas posibilidades a la hora de optimizar y personalizar en medio/bajo nivel su sistema operativo, e incluso escribir nuevos controladores, módulos y software para facilitarle la tarea de administración.

• Es posible desarrollar aplicaciones multiplataforma en C, que se puedan ejecutar en Windows, Linux o Mac OS sin problemas.

• A pesar de todo, C ha demostrado ser un lenguaje extremadamente eficaz y expresivo.

• El lenguaje C ha sido pensado para ser altamente transportable.• Un núcleo del lenguaje simple, con funcionalidades añadidas importantes,

como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.

Page 6: C y siistemas operativos

Desventajas de programar en lenguaje C

• C no es portable a nivel de código ejecutable, lo que significa que una aplicación compilada para Linux en formato, por ejemplo, ELF de 32 bits, no podrá ser ejecutada en windows, que utiliza formatos EXE o COM. Y viceversa, un .EXE de Windows no podrá ser ejecutado en un sistema *nix.

• Por supuesto, deberemos tener instaladas las bibliotecas de desarrollo utilizadas, en el sistema operativo en el que vamos a compilar.

• Si el código fuente no fue escrito siguiendo ANSI, seguramente solo podrá ser compilado con el compilador o IDE en el que fue programado.

• El Lenguaje C es relativamente sencillo, pero su gran flexibilidad es terreno abonado para la creación de vicios y prácticas no adecuadas de programación, por lo cual debe cuidarse la enseñanza de su estilo de programación, técnica y filosofía de trabajo.

• Polimorfismo en tiempo de código en forma de sobrecarga, sobrecarga de operadores y sólo dispone de un soporte rudimentario para la programación genérica.

• Soporte nativo para programación multihilo y redes de computadores.• Carece de instrucciones de entrada/salida, de instrucciones para manejo

de cadenas de caracteres, con lo que este trabajo queda para la librería de rutinas, con la consiguiente pérdida de transportabilidad.

Page 7: C y siistemas operativos

Sistemas Operativos

Page 8: C y siistemas operativos

Es un software básico de una computadora que provee una interfaz entre el resto de programas del computador, controlando y administrando todos los recursos de hardware y proporciona la base sobre la cual pueden escribirse los programas de aplicación y todos los programas ofimáticos, encargándose de brindar de forma ordenada, sencilla y segura la administración, operación, interpretación, codificación y emisión de las órdenes a la computadora (procesador central) para que esta realice las tareas necesarias y específicas para completar una orden, proceso o tarea específica.

¿Qué es un Sistema Operativo?

Page 9: C y siistemas operativos

Funciones de los Sistemas Operativos

1. Interpreta los comandos que permiten al usuario comunicarse con el ordenador, permitiendo la comunicación de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas.2, Coordina y manipula el hardware de la computadora, memoria, impresoras, unidades de disco, teclado, mouse; administrando de igual forma los recursos del hardware y de redes de un sistema informativo, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos.3, Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas. 4, Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Servir de base para la creación del software logrando que equipos de marcas distintas funcionen de manera análoga, salvando las diferencias existentes entre ambos.5, Los servicios de soporte de cada sistema operativo dependerán de la implementación (programas orientados a diferentes tareas, como editores de texto, administradores de archivos, navegadores, etc.) particular de éste con la que estemos trabajando.

Page 10: C y siistemas operativos

Sistemas operativos aplicados a los servidores

Page 11: C y siistemas operativos

Ventajas:

• Es un sistema universal. • Es transportable. • Es un sistema abierto. • Ha recogido contribuciones de

múltiples personas e instituciones. • Soluciones simples y elegantes .• Ofrece una rica colección de

pequeñas utilidades y los comandos que están diseñados para llevar a cabo tareas específicas, en lugar de ser recargada por una variedad de opciones especiales, pero insignificantes.

• Tiene la capacidad de encadenar diversas utilidades y comandos juntos, en un número ilimitado de configuraciones, con el fin de lograr una variedad de tareas complicadas

.

Desventajas:

• Pobre sistema de administración. • Sistema para gurús. • Falta uniformidad de estilo en los

programas del sistema• Fue desarrollado para ser utilizado

por programadores y usuarios informáticos serios, no por usuarios ocasionales.

• Muchos de los comandos de la interfaz de Unix requieren el uso de caracteres especiales.

• Soporta un máximo de 16 procesadores.

• Cuentan con empresas que lo respalden.

• No todas las aplicaciones esta en castellano.

Unix Es un sistema operativo portable, multitarea y multiusuario, desarrollado en 1969.

Page 12: C y siistemas operativos

Características

• Se trata de un SO que permite utilizar el PC en un sólo puesto de trabajo: monopuesto (o monousuario), es decir, no da la posibilidad de que distintos usuarios desde distintos puestos puedan trabajar simultáneamente sobre un único S.O.

• Es también monotarea , ya que no permite simultanear la ejecución de varias tareas a la vez. Por tanto, antes de ejecutar una nueva orden, debemos esperar a que concluya la anterior.

MS-DOS

Page 13: C y siistemas operativos

Ventajas

• Es que fue capaz de ir actualizándose cada año desde su aparición, cada vez con mejoras en su rendimiento funcional ya que se pudo ir incorporando nuevos programas y archivos según sus actualizaciones.

• Es capaz de soportar a otros sistemas operativos como es el caso de windows sin perder ninguna de sus cualidades como sistema operativo.

Desventajas

• Quedan en evidencia al intentar realizar más de una tarea al mismo tiempo, debido a que este sistema operativo es monotarea.

• Es que solo lo puede ocupar un usuario a la vez debido a que es un sistema MONOUSUARIO.

• No tenia un interface amigable, es decir, no contaba con ventanas, colores, etc, que hicieran más grato el trabajo o la comunicación entre el computador y el usuario.

Page 14: C y siistemas operativos

Es un sistema operativo tipo Unix más conocido como GNN/Linux, que significa software libre. Su nombre viene del Núcleo de Linux, Desarrollado en 1991 por Linus Torvalds.

Características

• Multitarea• Multiusuario• Multiplataforma• Multiprocesador.• Política de copia en escritura para la compartición de

páginas entre ejecutables. -Memoria virtual usando sistemas operativos

Linux

Page 15: C y siistemas operativos

Ventajas

•  Mas eficiente que Windows.

• Constante actualización.

• Gratuito.• Seguridad

Desventajas

•  No es muy común su uso en Compañías.

• Instalar controladores de Hardware y programas resulta ser mas complicado que en Windows.

• Muchos juegos no se ejecutan en Linux

Page 16: C y siistemas operativos

• Es un software de pago. • Cumple con la función de ir desarrollando las tareas

del computador, por medio de una interfaz gráfica que utiliza recuadros o ventanas (de ahí el nombre, Windows significa ventanas).

• La empresa que desarrollo Windows, Microsoft, fue creada por uno de los principales precursores de lo que son hoy en día los PC o computadores personales. Ya que Bill Gates, su dueño, junto con Paul Allen, desarrollaron de manera conjunta con IBM, el primer computador convencional de la actualidad. Aquello ocurría en la década de los 80`. Posteriormente Gates se desentiende de IBM y crea su propia empresa de software, quien continúa con el desarrollo de Windows

Windows

Page 17: C y siistemas operativos

Ventajas

• Es multitarea y multiusuario• Brinda la posibilidad de asignar

diferentes permisos a los usuarios.• Permite cambiar periódicamente

las contraseñas.• La instalación es sencilla.

Desventajas

• Tiene ciertas limitaciones por RAM.

• No ofrece el bloqueo de intrusos.• El usuario no puede limitar la

cantidad de espacio en el disco duro.

Page 18: C y siistemas operativos

• Esta basado en UNIX y tiene una interfaz gráfica desarrollada por la propia empresa Apple.

• La empresa Apple intenta siempre tener las mejoras prestaciones en sus ordenadores al precio más bajo posible.

• La barra de tareas en Mac es una de las más llamativas.

• En 2001 Apple lanzó su primera versión Puma. • Snow Leopard es la versión actual.• Desarrollan otra versión que todavía se desconoces

los detalles.

MAC

Page 19: C y siistemas operativos

Ventajas

• Mejor interfaz grafica del mercado.

• Ideal para diseño grafico.• Es muy estable

Desventajas

• Costoso (aunque viene incluido con la maquina).

• Existe poco software para este sistema operativo.

• Es más complicado encontrar gente que la pueda arreglar en caso de fallas.

Page 20: C y siistemas operativos

Sistemas operativos para móviles

Page 21: C y siistemas operativos

• Es un OS para móviles basado en núcleo Linux.

• Desarrollado por Google

Características • Framework de aplicaciones • Máquina virtual Dalvik • SQlite para almacenamiento

estructurado • Telefonía GSM • Cámara, GPS, brújula y

acelerómetro • Pantalla táctil.

Android

Page 22: C y siistemas operativos

Ventajas

• El código de Android es abierto• Hoy día hay más de 650.000 aplicaciones

disponibles para teléfonos Android.• Es capaz de hacer funcionar a la vez varias

aplicaciones y además se encarga de gestionarlas, dejarlas en modo suspensión si no se utilizan e incluso cerrarlas si llevan un periodo determinado de inactividad. De esta manera se evita un consumo excesivo de batería.

• Más personalización. • Los usuarios de Android pueden acceder a

las aplicaciones que consideren necesarias para modificar la interfaz según su estilo.

• Menos costoso. • Muchos de los dispositivos que apuestan por

el sistema operativo de Google cuentan con precios más bajos, a comparación que sus competidores.

Desventajas

• A pesar de ser una ventaja el ser un sistema multitarea: El hecho de tener varias aplicaciones abiertas hacen que el consumo de la batería aumente y como no todas las aplicaciones Android las cierra hay que instalar una aplicación para que las cierre.

• Duración de la batería: la batería en un celular Android se agota muy rápido.

• Poco intuitivo: Para la mayoría el sistema operativo es muy complicado.

• Cuando se lanza una actualización de Android, el acceso depende del fabricante.

• . La mayoría de software malicioso está destinada a móviles con Android.

Page 23: C y siistemas operativos

Es un OS compacto con aplicaciones básicas para dispositivos móviles basado en API Win32 de Microsoft.

Características: • Barra de tareas. • Se le añade Windows Media

Player • Incorpora Outlook Mobile

Windows Mobile

Page 24: C y siistemas operativos

Ventajas

• La ventaja más obvia del almacenamiento persistente en memoria flash es, como su nombre indica, que permanece aunque nos quedemos sin batería.

• La RAM se aprovecha mejor.• La batería dura mucho más

Desventajas

La ROM flash es notablemente más lenta que la RAM, con lo que la lectura y escritura de grandes cantidades de información llevará más tiempo.

Page 25: C y siistemas operativos

http://www.informaticamoderna.com/Sist_Ope.htm

ww.pixelworking.com/curso/actividadsistemasoperativos.html

http://www1.frm.utn.edu.ar/informatica1/VIANI/LENGUAJE%20C/LENGUAJE%20C.pdf

http://blog.utp.edu.co/jnsanchez/files/2011/03/Trabjo-final-de-C-men%C3%BA-funciones-2011.pdf

https://sites.google.com/site/lenguajecprogramacion/ventajas-y-desventajas

http://sopa.dis.ulpgc.es/fso/cpp/intro_c/

Webgrafìa

http://es.wikipedia.org/wiki/Wikipedia:portada

http://www.ciens.ucv.ve/algoritmosyprogramacion/documentos/POO_Manual%20de%20Ejercicios%20v3_LuisZelaya.pdf

Page 26: C y siistemas operativos

Reflexión

Hoy día es imprescindible ser un usuario competente en cuanto a los sistemas informáticos, a riesgo de quedar postergado y radiado en esta sociedad telemática del siglo XXI.

La elección del sistema operativo y de la mejor versión del mismo, no es un asunto banal… Por lo general y en lo personal, yo me inclino a recomendar el Sistema Operativo Windows XP, aunque para ciertos usuarios podría eventualmente ser mejor el Sistema Operativo Windows 98… Todo depende de los programas que se necesite utilizar…

A efectos de dar una idea sobre las ventajas de usar un buen sistema operativo, en las siguientes secciones se particulariza sobre un par de asuntos, así como sobre algunos detalles concretos relativos a ciertos usos del Sistema Operativo Windows…