Documente Academic
Documente Profesional
Documente Cultură
Ao 1847 1uiso mecanizar una calculadora utilizando datos por un lado y programas por otro *harles (abbage lo dise2 y nunca lo termin por'ue el gobierno ingl3s le 'uita el presupuesto. )urge el nombre de hardware. *onstruido en 4554 por el museo de la ciencia de ondres, 6nglaterra, comprobndose 'ue trabaja per-ectamente. Ao 1854 ,eorge (oole desarrolla las lgicas booleanas Ao 1891 7erman 7ollerith construy una m'uina de tarjeta per-orada para procesar el censo en EE.88. tard menos de 49 a2os en procesar. *omenz 7ollerith :abulating *ompany 'ue se trans-ormara en 6(& Ao 1904 ;leming descubre la !l!ula de !aco. Ao 1937 Alan :uring, desarroll la idea de una < m'uina uni!ersal < capaz de ejecutar cual'uier algoritmo Ao 1939 *omienza el proyecto de Ai=en /7ar!ard &ar= 60. Ao 1944 7ar!ard &ar= 6, es la primera calculadora automtica electromecnica, de -ines generales. El procesamiento e'ui!alente a 4 di!isin tarda 4 segundo. Ao 1945 ,race 7opper programadora de la &ar= 66 encontr el primer >bug? de computacin. @e all el primer termino de >debugging?. Ao 1946 E"6A* 6ncluy la capacidad del cmputo paralelo, totalmente electrnica. Algunas de sus caractersticas sonA Velocidad: Memoria: Elemen o!: B.999 adiciones por segundo C99 dgitos 4D.999 tubos de !aco, E.999 interruptores, 49.999 capacitores, F9.999 resistores, 4.B99 rel3s "amao: 49 pies de alto G 4.D99 pies cuadrados super-icieA 4F9 metros cuadrados #e!o: H9 toneladas #roce!amien o e'ui!alente a 4 di!isin tarda 4B milisegundos.
Ao 1946 Ion "eumann introduce los conceptos de programa almacenado y toma de decisiones, sentando los conceptos de ar'uitectura de los actuales ordenadores. Ao 1947 En *ambridge se construy el primer ordenador bajo la ar'uitectura de Ion "eumann Ao 1947 E@IA* &ucho ms pe'ue2o, ms rpido, ms barato 'ue E"6A* Ao 1948 $illiam )hoc=ley, .ohn (ardeen, y $alter (rattain, in!entaron el transistor, el cual re!olucion el ordenador y le dio la con-iabilidad 'ue no poda alcanzar con los tubos de !aco. Ao 1951 &emoria 'ue consiste en los <anillos magn3ticos minJsculos< el cual poda ser magnetizado en sentido de las agujas del reloj o en sentido contrario. a memoria ms rpida hasta los Jltimos a2os D9 Ao 1952 6(& E9K Ao 1953 6(& F94 Primer ordenador de negocio de 6(&. Ao 1955 6(& F9K a primera m'uina comercial con hardware de -loating+point Ao 1956 Aparecen los ordenadores de segunda generacin utilizando transistores Ao 1957 ;%#:#A" Primer lenguaje de programacin popular El ;%#:#A" FF y el ;%#:#A" 59 son usados hoy en da. Ao 1960 *ircuitos 7bridos os primeros circuitos hbridos comercialmente disponibles llegaron a estar disponibles por ;airchild *orporation. A partir de esta -echa los ordenadores lo utilizaran, en !ez de los transistores indi!iduales.
Ao 1964 6(& HE9 /tercera generacin L*.7.0 :ena F9M del mercado Ao 1965 @E* P@P D @igital E'uipment *orporation, primera minicomputadora Ao 1969 *omienzo de A#PA"E:, 'ue luego de!ino en 6nternet Ao 1971 6":E + /*ircuitos 6ntegrados de muy alta integracin +I )6 + cuarta generacin +, la *P8 es un Jnico chip0 Ao 1973 )e dise2a Ethernet, ahora utilizado para la mayora de las redes de rea local / A"Ns0 Ao 1975 Altar DD99 Primer microordenador -cilmente disponible. :ena CBE bytes de memoria (ill ,ates co+escribi el (A)6* para 3l Ao 1976 )te!e .obs y )te!e $ozniu= -ormaron APP E )urge &icro)o-t. Ao 1978 Iisi*alc Primer programa de hoja de clculo Aparece otus 4+C+H padre del EGcel. Ao 1979 $%#@):A# Primer procesador de teGtos del microordenador *on!ertido ms adelante en $ordPer-ect Ao 1980 @iscos @uros $inchester Primer disco rgido para los microordenadores Ao 1981 Primer P* de 6(& Primer microordenador <legtimo<
)istemas de numeracin decimal, binario y heGadecimal. Pasajes entre sistemas de nJmeros enteros y positi!os
:odos estamos -amiliarizados L ya 'ue es el 'ue hemos utilizado desde chicos L con el sistema de numeracin decimal. En este, disponemos de diez smbolos /9 al 50 para -ormar cual'uier cantidad menor 'ue diez. Para eGpresar un nJmero mayor 'ue 5, tendremos 'ue utilizar !arios de estos smbolos puestos en -ila, de tal -orma 'ue el situado a la derecha represente las unidades, el 'ue le precede las decenas, el anterior las centenas, etc. @e esta -orma, al escribir la combinacin de smbolos HKF estamos 'ueriendo decirA F O 4 P K O 49 P H O 499 o de otra -orma, F O 49 9 P H O 49 4 P K O 49 C El nJmero diez es lo 'ue llamamos base de este sistema de numeracin. :odo smbolo en nJmero decimal, tiene un !alor igual al propio !alor del mismo, multiplicado por diez ele!ado a un cierto eGponente. El eGponente depende de la posicin 'ue el smbolo ocupe dentro del nJmero total. *ada uno de los smbolos 'ue constituyen un nJmero cual'uiera, no puede tomar ms 'ue diez posibles !alores en el sistema decimal, las conocidas ci-ras del cero al nue!e. Por supuesto, no eGiste razn alguna para no utilizar sistemas de numeracin con base distinta de diez. As 'ue generalizando, podemos decir 'ue en un sistema de numeracin de base b, un nJmero " cual'uiera se puede representar mediante un polinomio de potencias de la base, multiplicadas por un smbolo perteneciente al sistema. En general, se tieneA " Q a n O b n P a n L 4 O b n L4 P . . . P a i O b i P . . . P a 4 O b P a 9 O b 9 siendo $ la base del sistema de numeracin y a i un nJmero /smbolo0 perteneciendo al sistema y 'ue por tanto cumple la condicin 0 % a & $. Por ejemplo, podemos in!entar algunos smbolos para los nJmeros 49 a 4B, llamndolos AQ49, (Q44, *Q4C, @Q4H, EQ4K, y ;Q4B, y comenzar a utilizar dos smbolos /dos ci-ras0 para los mayores de 4B, obteniendo el sistema de base 'e(adecimal /b Q 4E0. As, las ci-ras 49 representaran el nJmero 4 O 4E 4R el nJmero *(B sera, al pasar a nuestro conocido sistema decimal, el 4C O 4E C P 44 O 4E 4 P B O 4E 9 Q HCBH Ahora ya nos encontramos con la posibilidad de representar un mismo nJmero en distintos sistemas num3ricos y para ello es preciso el agregado de un subndice con la base en la cual se eGpresa el nJmero, a -ines de di-erenciar en 'u3 sistema se encuentra. Por ejemplo, los nJmeros 4CH4E, 5D549, 49449449, 4944944E, etc., o mencionar e'ui!alencias como *(B4E Q HCBH49, 4CH4E Q C5449 El sistema $inario es el de base C, 'ue utiliza solamente dos smbolos distintos representados por el 9 y el 4. El nJmero 4944C se puede escribir entoncesA 4944C Q 4O C H P 9 O C C P 4 O C 4 P 4 O C 9 Q 4449
as e'ui!alencias del sistema decimal al binario pueden !erse en la siguiente tabla )istema @ecimal 9 4 )istema binario 9 9 9 9 9 9 9 4
C H K B E F D 5
9 9 9 9 9 9 4 4
9 9 4 4 4 4 9 9
4 4 9 9 4 4 9 9
9 4 9 4 9 4 9 4
2 4 0 2 2 0 2 1
4B49 Q 4444C 449 Q 9994C 949 Q 9999C Pasaje del sistema binario al sistema decimal 4999C 44449C Q 4OCH P 9OCC P 9OC4 P 9OC9 Q D P 9 P 9 P 9 Q D49 Q 4OCK P 4OCH P 4OCC P 4OC4 P 9OC9 Q 4E P D P K P C P 9 Q H949
;K4C(4E
Q 4BO4EK P KO4EH P 4O4EC P CO4E4 P 44O4E9 Q 5DH9K9 P 4EHDK P CBE P HC P 44 Q 555FCH49 Q 4BO4EH P 4KO4EC P 4HO4E4 P 9O4E9 Q E4KK9 P HBDK P C9D P 9 Q EBCHC49
;E@94E
16 6
12
9 9 9 9 9 9 9 9 4 4 4 4 4 4
9 4 9 4 9 4 9 4 9 4 9 4 9 4
E ;
4 4
4 4
4 4
9 4
8 8 5
E! ado de cor e
no cond,ce cond,ce
7 7
E! ado de !a ,raci3n 7
En la materia 6n-ormtica 6, ms 'ue preocuparnos por cmo trabaja la circuitera, consideraremos cada estado utilizando los nJmeros 4 y 9 para indicar hay tensin o no hay tensin respecti!amente /lgica positi!a0. :ambi3n se podra trabajar con lgica negati!a, donde un 9 indica el estado de >hay tensin?. os !alores 9 y 4 son entonces, los 'ue representarn a los dos estados posibles.
bit
8n 9 un 4 por s mismo se llama un dgito binario, 'ue en ingl3s es 45nary digi"1 y el mGimo !alor capaz de representar ser C4 /dos ele!ado a la uno0, tambi3n bit signi-ica mordis'uito.
byte
@el ingl3s 4inar6 "erm, se entiende como el conjunto de caracteres binarios /bits0 sobre los 'ue se opera como una unidad en sistemas digitales, se compone generalmente de D bits, al odo byte suena como bite 'ue signi-ica mordisco. @ado 'ue en muchos sistemas de codi-icacin, cada carcter necesita de ocho bits para ser
codi-icado, la idea inicial 'ue se tiene habitualmente es 'ue siempre se necesita un conjunto de ocho bits para con-igurar un byte. )in embargo, en -uncin de la de-inicin 'ue se ha dado, un byte puede tener un nJmero !ariable de bits, dependiendo de 'ue se usen B, E, F u D bits para -ormar un carcter. Esta unidad de medida se suele usar -recuentemente para indicar la capacidad de almacenamiento de la in-ormacin en memoria o en e'uipos auGiliares. *on ello se indica precisamente el nJmero de caracteres 'ue pueden ser almacenados en ellos.
word
)e de-ine como $ord o palabra a un nJmero de caracteres -ijos /bytes0, 'ue un procesador trata como una unidad, cuando los trans-iere entre sus distintas unidades o los somete a distintos procesos, como lectura, escritura en memoria, operacin aritm3tica, etc. )e deber entender por caracteres a las letras, nJmeros o smbolos especiales.
nibble
Es el grupo de K dgitos binarios. El mGimo !alor 'ue pude representar es por lo tanto CK /dos ele!ado a la cuatro0, tambi3n nibble signi-ica mordisco.
BDC
El -ormato (*@ 4inar2 Coded Decimal /4CD0 o Decimal codi8icado en $inario es un -ormato de uso estandarizado en la industria electrnica. *onsiste en di!idir un byte /Dbits0 en dos partes /nibble0. *ada uno de esos nibbles puede tomar !alores entre 9 y 5 Jnicamente /de 49 a 4B son prohibidos0 y por lo tanto se pueden representar magnitudes en base 49 entre 9 y 55.
El estudio lo haremos desde la representacin binaria 'ue es la ms Jtil para nosotros, pero podra
hacerse desde cual'uier base. Ma-ni ,d 2 !i-no Este con!enio se basa en dejar el bit ms alto /de ms alto peso0 reser!ado para colocar el signo de nJmero. o habitual es 'ue si el bit de signo est en cero el nJmero ser positi!o y si est en uno ser negati!o. @e nue!o, son con!enios y en algJn caso puede no ser as. Para conocer la magnitud, se toma el !alor absoluto del nJmero, si es un byte, los F primeros bits y se le coloca el signo segJn corresponda. Por lo tanto un byte en magnitud y signo puede tomar un !alor 'ue !a entre +4CF y P4CF con una doble representacin del cero /tendremos un cero positi!o y un cero negati!o0. )e siguen teniendo CBE combinaciones. Ej.A 99994444C ser P4B49 49994444C ser +4B49 99999999C ser P949 49999999C ser +949 Este con!enio no se utiliza para operaciones matemticas ya 'ue la doble representacin del cero hace necesario un ajuste de los resultados. Com.lemen o a 1 *omplementar a 4 un byte signi-ica 'ue se reemplaza uno por cero y cero por uno. )i partimos de la magnitud positi!a, al igual 'ue magnitud y signo con el bit ms signi-icati!o en uno y le aplicamos el complemento a 4 obtendremos la representacin negati!a de dicha magnitud. Ej. 1ueremos saber como se representa el +EB en complemento a 4 Partimos del PEB49 94999994C y lo complementamos a 4 49444449C 'ue es el +EB en complemento a 4. :ambi3n tiene doble representacin del cero por lo 'ue tampoco se usa en in-ormtica para almacenar nJmeros con signo Com.lemen o a 2 El complemento a C de un nJmero se obtiene complementando primero a 4 y luego a dicho resultado se le suma 4 obteni3ndose el complemento a C. @e esta -orma, si partimos de la representacin positi!a de la magnitud/igual 'ue en los dos con!enios anteriores con bit mas alto en cero0 y aplicamos complemento a C obtendremos la representacin negati!a de dicha magnitud. Ej. 1ueremos saber como se representa el +EB en complemento a C Partimos del PEB49 94999994C y lo complementamos a C 49444449C uego le sumamos 4 entonces 49444449C P 4C Q49444444C obteni3ndose el complemento C 'ue es la representacin de la magnitud +EB49 en complemento a C. Este con!enio se usa en in-ormtica para almacenar nJmeros signados ya 'ue permite obtener el resultado de las operaciones matemticas en -orma directa sin ningJn tipo de ajuste del mismo.
En todos los con!enios !istos el nJmero positi!o se almacena en magnitud y signo. El lgebra nos ense2a 'ue restar es lo mismo 'ue sumar a un nJmero otro negati!o. Ej. 1ueremos realizar la siguiente operacinA EB49 L 4E49 Q K549 El mismo resultado se obtendra si hacemos EB49 P /+4E490 esto es complementando a C la representacin binaria de la magnitud P4E49 para obtener su representacin negati!a y luego realizando la suma. Por medio de la resta directaA T94999994C PEB49 99949999C P4E49 99449994C PK549 Por medio de la suma de un sustraendo en complemento a C P4E49 Q 99949999C complemento a C 44494444C P 4C Q 44449999C PEB49 44449999C + 4E49 199449994C PK549 :$!er*e +,e a.arece ,n no*eno $i +,e en e! e ca!o e! ,n 1. #or !,.erar lo! 8 $i ! 2 no 'a$er ca.acidad .ara almacenarlo1 dic'o $i !e .ierde. os lenguajes de programacin utilizan el complemento a C para almacenar sus tipos de datos signados por las !entajas 'ue tiene. Este con!enio adems tiene una Jnica representacin del cero. )i tenemos D bits podemos almacenar !alores entre +4CD49 a P4CF49 )i tenemos 4E bits podemos almacenar !alores entre +HCFED49 a PHCFEF49 En odo! lo! ca!o! el cero !e ;con!idera< .o!i i*o 2 .ar.
P 94999994C
Mundo
I/O
Exterior
os blo'ues sonA
C P U
M E M
5=:: @ispositi!os de entrada y salida son la circuitera y elementos especializados 'ue permiten interactuar a la computadora con el mundo eGterior. )e ha utilizado la eGpresin mundo eGterior ya 'ue este puede ser tanto un ser humano como un proceso industrial o cual'uier tipo de sistema 'ue re'uiera un control inteligente. C#>: 8nidad central de proceso. Es como su nombre lo indica donde se realizan las di!ersas operaciones, como as mismo se e-ectJa el control general de la m'uina. MEM: 8nidad de memoria. Es donde se almacenan los programas 'ue se han de ejecutar por la *P8 estando estos con-ormados por instrucciones y datos.
REG
Para caracterizar a un registro debemos conocer su capacidad de almacenamiento en bits 'ue es lo 'ue se denomina longitud de palabra. @entro de una computadora se utilizan !arios registros. Ahora bien, para almacenar la sucesin de instrucciones 'ue con-orman un programa debemos utilizar un agrupamiento de elementos de memoria 'ue permitan intercambiar in-ormacin con una estructura de acceso, 'ue no se podra lograr utilizando un agrupamiento de registros aislados. @e all surge el concepto de memoria mapeada donde cada celda 'ue permita intercambiar in-ormacin se localiza a tra!3s de una in-ormacin denominada direccin. a in-ormacin de la direccin de memoria a utilizar es suministrada por la *P8 y esta debe ser transportada a la memoria. Por lo tanto la in-ormacin de la direccin sube a un medio de transporte 'ue se denomina (8). @ado 'ue se transporta in-ormacin de direcciones se le denomina BUS de direcciones o Address Bus. Este (8) lle!a la in-ormacin y la posiciona en un registro denominado registro de direcciones o registro Address. a in-ormacin almacenada en el registro de direcciones no es otra cosa 'ue un conjunto de bits. @e acuerdo a la cantidad de bits disponibles resultar la cantidad de posiciones de memoria 'ue se podrn direccionar. Por ejemplo, si el A@@ (8) y el registro A@@ son de C bits, podr3 seleccionar una celda entre K
posibles. Esto signi-ica 'ue la capacidad de elementos 'ue se puede direccionar est ntimamente relacionada con la longitud de palabra del registro A@@. Iol!amos a nuestro ejemplo de un registro de solo C bitsR la tarea ahora ser seleccionar la celda correspondiente para trabajar. Esta misin la cumple un elemento denominado decodi-icador 'ue tiene tantas salidas como combinaciones posibles con los bits almacenados en el registro A@@.
RE!! "U!
A D D
D E C
)i retomamos nuestro ejemplo el @E* tendr K salidas cada una de las cuales habilitar una posicin de la memoria para trabajar. 8na !ez 'ue ahora s se ha direccionado la memoria se puede realizar un intercambio de in-ormacin desde la memoria a la m'uina o !ice!ersa. a in-ormacin 'ue se puede trans-erir puede ser datos o instrucciones. Esta in-ormacin tambi3n debe poder transportarse y se realiza a tra!3s del (8) de datos o @A:A (8). Para poder realizar esta tarea se re'uiere de un registro 'ue se denomina registro de datos o registro @A:A. )lo nos -alta para completar la operacin indicarle a la memoria el sentido del intercambio y esto se realiza por medio de las rdenes denominadas microcomandos, 'ue en este caso sern o bien el de leer /eGtraer in-ormacin de la memoria0 o el de escribir /guardar in-ormacin en la memoria0.
leer escribir
D E C
RE!! "U!
A D D
DATA
A%A "U!
a memoria se puede clasi-icar de acuerdo a su -uncionalidad en memoria de solo lectura /#%&0 y memoria de lectura escritura /#ead $rite &emory0. )e hace especial 3n-asis en este punto de no con-undir conceptos ya 'ue para el lego la clasi-icacin consiste en memoria #%& y #A&. El t3rmino #A& pro!iene de #andom access memory y esta denominacin no se corresponde a la -uncionalidad sino a la accesibilidad interpretndose 'ue se puede acceder a una posicin de memoria sin ningJn re'uisito pre!io por lo cual desde este punto de !ista no solo la memoria de lectura escritura es de acceso #A& sino 'ue la memoria #%& tambi3n es #A&.
UC A#U
>C: 8nidad de control. Es el corazn de la m'uina, ya 'ue desde all se emiten los microcomandos. A?>: 8nidad aritm3tica y lgica. *omo su nombre lo indica es donde se ejecutan las operaciones aritm3ticas /suma, resta etc.0 como asimismo las lgicas /comparaciones, etc.0.
Unidad de Control
a unidad de control posee un registro llamado registro de instruccin /60 en el cual se alojar la instruccin a ejecutar. Esta in-ormacin se eGtrae de la memoria y llega a tra!3s del (8) de datos. as instrucciones estn compuestas por dos campos, uno de ellos denominado cdigo de operacin /*%0 y el otro campo de direcciones /@6#0. os procesadores pueden tener mas de una -orma de direccionamiento y este teGto se utilizar el conocido como direccionamiento directo para eGplicar el -uncionamiento de una m'uina elemental. Esto signi-ica 'ue el *% nos indica 'ue hacer y el @6# la direccin de memoria donde trabajar para leer o escribir un dato de ser necesario. En otros modos de direccionamiento la in-ormacin contenida en @6# es un indicio 'ue luego de procesarse permite obtener la direccin de memoria a utilizar. *on la in-ormacin del *% ahora podemos comenzar a emitir las di!ersas ordenes 'ue permiten cumplir con el cometido propuesto y para ello se debern emitir una serie de microinstrucciones o microcomandos 'ue re'uerirn un cierto orden temporal y una secuencia correcta, esta -uncin la cumple el secuenciador el cual para poder realizar esta tarea con un determinado orden adems recibe la in-ormacin del reloj de la m'uina /* K0. *abe destacar 'ue la !elocidad de ejecucin de una m'uina esta relacionada con la emisin de los microcomandos y no con la ejecucin de operaciones concretas a ni!el del ser humano /Por ej. la suma de C nJmeros utiliza una cantidad aproGimada a los C9 instantes temporales en una m'uina elemental0. Para tener completa nuestra 8.*. -alta un registro ms 'ue se denomina *ontador de programa o Program *ounter /P*0. En este registro se almacena la direccin de la prGima instruccin a ejecutar y al mismo le llega el microcomando conocido como 1 'ue incrementa en uno el contenido del P*. En la ar'uitectura de Ion "eumann se permite 'ue el programa pueda alterar el orden de ejecucin de las instrucciones almacenadas ordenadamente en la memoriaR esto sucede cuando se toma una decisin, por lo tanto en este caso la in-ormacin del campo @6# se usa para alterar el contenido del P*.
)1
PC
RE!! "U!
I
C#(
CO
IR A%A "U!
&C
*uando el *% de operacin nos dice 'ue debemos tomar una decisin esta se basa en algJn !alor particular de los datos 'ue se estn procesando y esta in-ormacin le llega a la unidad de control a tra!3s del (8) de estados o )tatus (8).
!%A%U! "U!
!%A%U!
2*OP
1*OP
A%A "U!
as operaciones lgicas pueden utilizarse para realizar comparacin entre operandos /6gual, distinta, mayor menor0. &uchas !eces no interesa tanto el resultado en s mismo del A** sino alguna caracterstica particular /si es cero o no, si es positi!o o negati!o, si se desbord su capacidad, etc.0 Estas in-ormaciones 'ue son Jtiles para tomar decisiones se alojan en el registro de estados o registro ):A:8) y de all se transporta a la unidad de control por el (8) de estados. *abe a'u aclarar 'ue los (uses de direcciones, datos y estados son los tres buses -undamentales de toda m'uinaR pero en la actualidad los usos y costumbres han lle!ado a citar un (8) llamado de control el cual no es otra cosa 'ue una suma del ):A:8) (8) con los microcomandos, pero algunos autores a-irman 'ue ese conjunto no es un (8) criterio 'ue compartimos.
I
C#(
CO
IR
A D D
E C A%A
A%A "U!
!%A%U!
ACC
2*OP
1*OP
PROGRAM COU'%ER CO IGO E OPERACIO' MICRO COMA' O! ARI%+ME%IC #OGIC U'I% CAMPO E IRECCIO' REGI!%RO E !%A%U! REGI!%RO E I'!%RUCCIO'
A%A "U!
OP1 OP2
1, OPERA' O 2, OPERA' O REG- E'%RA A / !A#I A ACUMU#A OR REGI!%RO E IRECCIO'AMIE'%O REGI!%RO E I'%ERCAM"IO E A%O! ECO I$ICA OR
I/O
C O ' ! I
E R A C I O ' E !
El bus de datos, al igual 'ue el de direcciones, son simples conductores metlicos por lo tanto, no poseen inteligencia propia. a transmisin o recepcin de in-ormacin sobre los buses depender de la habilitacin o inhabilitacin de cada uno de los registros 'ue se conectan a los mismos. *uando se realiza la copia de in-ormacin desde un registro a otro, no !e de! r,2e la in8ormaci3n en ori-en. )e dice por lo tanto 'ue la lectura no es destructi!a.
@ Car-ar el .rimer o.erando con el .rimer da o a !,mar A@@ EE# 4%P @ir @A:A
@ Aa!e de $9!+,eda de la !e-,nda in! r,cci3n ;ase de bJs'ueda propiamente dicha A@@ EE# 6 P* @A:A
C%P
@A:A
Aa!e de $9!+,eda de la ercera in! r,cci3n ;ase de bJs'ueda propiamente dicha A@@ EE# 6 P* @A:A
Preparacin para la instruccin siguiente P* B,mar )8&A# /coloca en el acumulador la suma de los dos operandos0 Aa!e de $9!+,eda de la c,ar a in! r,cci3n ;ase de bJs'ueda propiamente dicha A@@ EE# 6 P* @A:A P* P 4
C,ardar el re!,l ado en ,na direcci3n de memoria A@@ @A:A E)*#6(6# @6# A*8&
Captulo 2
)istemas %perati!os
ntrod!ccin
)abemos 'ue el sistema operati!o es una parte esencial cual'uier computadora moderna, sin el no -unciona o se hara muy compleja su utilizacin. )i el sistema operati!o es no con-iable o ine-iciente, la computadora tambi3n ser no con-iable o ine-iciente, como consecuencia el usuario no podr realizar sus tareas de -orma correcta.
Recursos de la computadora
os recursos podemos di!idirlos en dos categorasA #ecursos hardwareA procesadores, memorias, discos, peri-3ricos, etc. #ecursos lgicosA procesos, cdigo ejecutable, datos, archi!os, documentos, etc.
*apas de una computadora. En la capa hardware se encuentran todos los recursos -sicos, como procesadores, memoria, los dispositi!os de entrada+salida /puertos serie, teclado, monitor, discos, impresora, etc.0, etc. Por encima de la capa hardware aparecen dos capas 'ue estn compuestas por so-tware, 'ue se puede di!idir se puede di!idir en C categorasA #ro-rama! del !i! ema, los cuales manejan los recursos de la computadora y pro!een una inter-az de comunicacin entre las aplicaciones del usuario y dichos recursos. Esta inter-az permite 'ue el programador pueda manejar el hardware /crear archi!os, !isualizar un mensaje en la terminal, etc.0 de manera sencilla, sin saber realmente como -uncionan los dispositi!os hardware. El desarrollador !e una computadora eGtendida, 'ue es mucho mas -cil de entender 'ue el -uncionamiento del hardware. Estos programas son esenciales para el -uncionamiento de la computadora. ,ran parte de estos pertenecen al sistema operati!o. #ro-rama! de a.licaci3n, los cuales realizan el trabajo 'ue el usuario necesita, no son esenciales para el -uncionamiento de la computadora, pero si para 'ue sea Jtil. Por ejemplo aplicaciones para editar documentos, crear planillas de clculo, desarrollar programas, etc. Podemos de-inir las -unciones del sistema operati!o comoA Presenta una inter-az ante el usuario para manejar los recursos de la computadora, -cil de entender. El usuario /programador0 puede crear una aplicacin sin conocer todos los detalles del -uncionamiento del hardware. Por ejemplo, en el caso de discos, el sistema operati!o le pro!ee al usuario una inter-az donde puede crear archi!os, directorios, leer o escribir archi!os, etc., sin tener 'ue manejar interrupciones, el motor del lector del disco, las cabezas del disco, etc. *uando el sistema operati!o tiene la capacidad de ejecutar !arios procesos a la !ez, estos pueden tratar de utilizar el mismo recurso simultneamente, por ejemplo, ambos necesitan escribir al disco. El sistema operati!o hace 'ue los procesos accedan al hardware en -orma ordenada, es decir, si !arios procesos 'uieren utilizar el mismo recurso simultneamente, el sistema operati!o le dejara usar el recurso de a un proceso por !ez durante un determinado tiempo, y luego se lo dejar usar a otro proceso, as hasta lograr 'ue todos los procesos utilicen el recurso. *uando la computadora tiene la capacidad de atender a !arios usuarios simultneamente, el sistema operati!o debe proteger los recursos de los usuarios, de manera tal 'ue ningJn usuario pueda inter-erir con otro.
Principio de funcionamiento
*ada dispositi!o de hardware de la computadora es manejado por un controlador, el cual posee un bu--er de almacenamiento. a -uncin del controlador es realizar la trans-erencia de datos entre el dispositi!o y el bu--er propio. uego el procesador mue!e los datos entre el bu--er del controlador y la memoria principal. os controladores a!isan al procesador 'ue ha -inalizado alguna tarea mediante interrupciones. 7ay casos en 'ue un controlador puede manejar !arios dispositi!os, por ejemplo los discos.
Interrupciones
EGisten H tipos de interrupcionesA 5n err,.cione! 'ardDare a!incr3nica!
)on utilizadas por los dispositi!os de entrada+salida para a!isar 'ue algo sucedi. Ej. )e pulso una tecla. )on asincrnicas por'ue algunos dispositi!os pueden operar en -orma simultnea con el procesador y no se sabe en 'ue momento !a a suceder la interrupcin. 5n err,.cione! 'ardDare !incr3nica!
lamadas tambi3n e(ce.cione!. )e producen cuando el procesador realiz alguna operacin no !alida, como por ejemploA di!isin por cero. "o siempre son un problema gra!e, por ejemploA el procesador trato de leer una direccin de memoria in!lida, la pgina estaba en el disco, se debe cargar antes de leerla. 5n err,.cione! !o8 Dare
)on causadas por las llamadas al sistema, 'ue son la inter-az entre la aplicacin del usuario y el hardware, se !era mas adelante.
Dispositivos de entrada-salida
El sistema operati!o maneja todas las operaciones de entrada+salida. a atencin de los dispositi!os de entrada+salida re'uiere de mucho es-uerzo por parte de la computadora, por lo tanto se deben realizar de -orma e-iciente. EGisten H t3cnicas de atender los dispositi!os de entrada+salidaA
Enc,e! a! E#ollin-F
:3cnica utilizada para dispositi!os lentos. El dispositi!o deber tener una bandera 'ue indica si esta ocupado o listo, el procesador entrara en un bucle en el cual consultara ese bit cada cierto tiempo. El procesador se pasa mucho tiempo dentro de un bucle esperando 'ue los dispositi!os est3n listos, por lo tanto, esta t3cnica es ine-iciente. #ecordar 'ue uno de los objeti!os del sistema operati!o es manejar los recursos de manera e-iciente. 8na aplicacin necesaria del Polling es cuando se necesita encuestar un dispositi!o en tiempos -ijos y espec-icos. 5n err,.cione!
El procesador y el dispositi!o realizan tareas simultneamente, cuando el dispositi!o termino alguna tarea le a!isa al procesador mediante una interrupcin. Este m3todo es e-iciente y Jtil cuando no sabemos cuando el dispositi!o tendr un dato ha ser ledo o est disponible para ser escrito. Acce!o direc o a memoria EDMAF
Este m3todo se utiliza para a'uellos dispositi!os capaces de transmitir o recibir datos a alta !elocidad, como por ejemplo los discos. El controlador del dispositi!o trans-iere blo'ues de datos desde su bu--er a la memoria principal sin la inter!encin del procesador.
Dispositivos de almacenamiento
EGisten distintos medios de almacenamientoA Memoria .rinci.al
Es el Jnico medio de almacenamiento donde el procesador puede acceder directamente. Almacenamien o !ec,ndario
)on medios de almacenamientos de gran capacidad y no !oltiles, 'ue sir!en para eGtender la memoria principal. EjemploA @iscos magn3ticos.
Protecciones %ardware
@ebido a 'ue eGisten !arios procesos 'ue comparten los recursos, se debe pre!enir 'ue un proceso acceda a los recursos de otro, esto se hace con la ayuda del hardware. EGisten !arias protecciones hardwareA :.eraci3n d,al@mode
EGisten dos modos de ejecucin de un programa, modo =ernel o super!isor y modo usuario. El procesador posee un bit 'ue indica el modo de operacin en el cual se encuentra. *uando se produce una interrupcin, el procesador pasa a modo super!isor.
os procesos 'ue se ejecutan en modo super!isor tienen acceso a instrucciones pri!ilegiadas / EjemploA instrucciones de 6U%0 y a todos los recursos de la computadora. os 'ue se ejecutan en modo usuario no tienen acceso a los recursos ni a las instrucciones pri!ilegiadas. El sistema operati!o se ejecuta en modo super!isor y las aplicaciones en modo usuario, por lo tanto, un programa de aplicacin no tiene acceso a los recursos del sistema, pero necesita utilizarlos. El sistema operati!o le pro!ee un mecanismo para 'ue puedan acceder a los recursos, denominado llamada! al !i! ema. #ro ecci3n de 5=:
:odas las instrucciones de entrada+salida son pri!ilegiadas, se debe asegurar 'ue un programa de aplicacin se ejecute en modo usuario. #ro ecci3n de memoria
)e debe pro!eer proteccin de memoria por lo menos en la tabla de !ectores de interrupciones y las rutinas de ser!icio de interrupciones. El procesador posee dos registros 'ue indican el rango de direcciones de memoria donde el proceso puede acceder. En la prctica la proteccin de memoria la realiza una parte del sistema operati!o llamada Ce! or de memoria.
Llamadas al sistema
as llamadas al sistema son una inter-az entre el sistema operati!o y los programas de aplicacin. os mecanismos actuales de realizar una llamada al sistema son dependientes del tipo de hardware, y son normalmente eGpresados en lenguaje assembler. Para poder realizar llamadas al sistema desde programas en *, se pro!ee una librera de -unciones. @ebido a 'ue los programas de aplicacin se ejecutan en modo usuario, no pueden realizar ciertas tareas como operaciones de entrada+salida, pero las necesita. Ellos utilizan las llamadas al sistema para pedirle al sistema operati!o 'ue realice alguna tarea por ellos, 'ue la aplicacin por si sola no puede realizar. El sistema operati!o recibe el pedido, !eri-ica 'ue el pedido no inter-iera con otro programa en ejecucin y lo realiza, si inter-iere no la realiza. El estndar #:B5G especi-ica un numero de -unciones 'ue un sistema ajustado a el debe suministrar, pero no especi-ica si deben ser llamadas al sistemas, libreras de -unciones u otra cosa. Ieamos un ejemplo de una llamada al sistema en un 8niGA
int open (char *path, int flags, int mode )
Abre un archi!o para realizar escritura o lectura, esto esta determinado por el parmetro mode. )i la llamada es eGitosa, open/0 de!uel!e el descriptor de archi!o, sino de!uel!e +4 y establece la !ariable global errno con el numero de error 'ue se produjo. os programas deben !eri-icar el !alor de!uelto y errno para saber si se produjo algJn error. inuG posee aproGimadamente 4F9 llamadas al sistema, los programas utilizan mucho las llamadas al sistema. )e puede !er cuales utiliza un programa mediante el comando straceR !eamos la salida de strace para un programa muy simple.
/* hello.c - programa simple para visualizar el uso al sistema */ !include "stdio.h# main() $ printf (%&ello 'orld(n%)) * ue hace un programa de las llamadas
tiempo. En los !i! ema! de iem.o com.ar ido, cada usuario tiene una terminal on+line, donde puede en!iar comandos y !er su salida en -orma interacti!a. 6gual 'ue en multiprogramacin, se cargan !arios procesos simultneamente en memoria, la conmutacin entre procesos no solo suceda cuando el proceso estaba esperando 'ue alguna operacin de entrada+salida -inalice, tambi3n se conmutaba de proceso cada cierto inter!alo, dndole la apariencia a cada usuario 'ue posea la m'uina para el solo.
*ada procesador ejecuta una copia del sistema operati!o M,l i.roce!amien o a!imH rico
*ada procesador tiene asignado una tarea espec-ica, eGiste un procesador master 'ue asigna tareas a los procesadores escla!os. Aparecen los !i! ema! o.era i*o! .ara rede!, donde el usuario puede dar rdenes a una computadora en -orma remota, copiar archi!os de una computadora a otra, etc. Aparecen los !i! ema! di! ri$,ido!. *ada procesador tiene su memoria y reloj local, se comunican con otros procesadores a tra!3s de una red. os procesos se ejecutan en distintos procesadores, unidos mediante una red, sin 'ue el usuario se entere. Aparecen los !i! ema! en iem.o real, se utiliza cuando las tareas se deben realizan dentro de un limite de tiempo. EGisten dos tipos de sistemas en tiempo realA 'ard ad !o8 . os 'ard re'uieren 'ue el procesamiento se complete dentro de un lmite de tiempo, si no se satis-ace, el sistema -alla. os !o8 son menos estrictos con los lmites de tiempo y ejecutan el proceso en tiempo real con la mayor prioridad.
!istemas monol'ticos
"o hay una estructura determinada, el sistema operati!o esta escrito como un conjunto de rutinas, cual'uier rutina puede llamar a cual'uier otra.
Estructura de un sistema en capas a capa 9 pro!ee la multitarea. *onmuta entre procesos cuando sea necesario. Por encima de la capa 9 el sistema esta compuesto por un numero de procesos 'ue se ejecutan en -orma secuencial. a capa 4 se ocupa de la administracin de la memoria principal y de los discos. a capa C maneja la comunicacin entre cada proceso y la consola del operador, tambi3n maneja la comunicacin entre procesos. a capa H maneja los dispositi!os de entrada+salida y los bu--ers de entrada+salida, por encima de la capa H los procesos manejan los dispositi!os mediante una inter-az ms sencilla 'ue el manejo real de los dispositi!os. En la capa K se encuentran los programas del usuario en ejecucin, estos acceden a los recursos de -orma sencilla, sin conocer el -uncionamiento real del hardware. En la capa B se encuentra el operador del sistema /super usuario0.
)*+uinas virtuales
6(& cre el %)UHE9, 'ue era un sistema de procesamiento por lotes, muchos usuarios 'ueran un sistema de tiempo compartido, entonces !arios grupos de programadores de 6(& y -uera de 6(& se decidieron a escribir sistemas de tiempo compartido. El sistema o-icial de tiempo compartido de 6(& -ue el :))UHE9, -ue entregado muy tarde, era demasiado grande y lento, -ue poco utilizado, luego -ue abandonado. 8n grupo del centro de cient-icos de 6(& en *ambridge desarrollo un sistema 'ue luego 6(& lo acepto como un producto, este sistema originalmente se llamo *PU*&) y luego se renombro a I&UHF9. 8n sistema de tiempo compartido pro!ee multiprogramacin /multitarea0 y una computadora eGtendida mas -cil de manejar 'ue el hardware. El -uncionamiento del I&UHF9 no cumpla estas -unciones.
El nJcleo del I&UHF9 es el monitor de la m'uina !irtual, el cual se ejecuta sobre el hardware y realiza la multiprogramacin, pro!eyendo !arias m'uinas !irtuales a la capa superior. Estas m'uinas !irtuales no son como las m'uinas eGtendidas 'ue -acilitan la tarea del programador, son copias eGactas del hardware /6U%, interrupciones, etc.0. *ada m'uina !irtual es id3ntica al !erdadero hardware, cada una puede ejecutar cual'uier sistema operati!o 'ue corra en el hardware del I&UHF9. Algunas m'uinas !irtuales ejecutaban el %)UHE9, otras un sistema operati!o interacti!o, multiusuario, llamado *&).
)odelo cliente-servidor
8na tendencia en sistemas operati!os modernos es mo!er cdigo del sistema operati!o hacia ni!eles superiores lo mGimo posible, dejando un =ernel mnimo. )e implementa la mayora de las -unciones del sistema operati!o en el ni!el de procesos de usuarios. En esta ar'uitectura eGisten procesos clientes y procesos ser!idores, los procesos clientes realizan pedidos de realizacin de algJn ser!icio, los procesos ser!idores pro!een algJn ser!icio. El proceso cliente en!a un pedido al proceso ser!idor, el cual realiza la accin y le de!uel!e una respuesta. El sistema operati!o esta -ormado por el =ernel y los procesos ser!idores, los procesos clientes son las aplicaciones de los usuarios ejecutndose.
El proceso cliente obtiene un ser!icio en!indole un mensaje al proceso ser!idor En la -igura se !e un modelo donde el =ernel maneja la comunicacin entre clientes y ser!idores. )e !e 'ue todos los procesos clientes y ser!idores se ejecutan en modo usuario, por lo tanto, ambos no
tienen acceso directo al hardware. Ieamos las !entajas de este modeloA )i un ser!idor contiene un error /bug0, ese ser!idor podr colgarse, pero no toda la computadora. Este modelo se puede adaptar para usarlo en sistemas distribuidos, el ser!er podra estar en otra computadora y los pedidos y respuestas se en!an a tra!3s de una red.
El cliente en!a un mensaje al proceso ser!idor en un sistema distribuido En la -igura se !isualiza el es'uema de un sistema distribuido, !arias computadoras unidas mediante una red. os pedidos de los clientes !iajan a tra!3s de ella hasta llegar a la computadora destino 'ue ejecuta el ser!idor, luego el ser!idor realiza el pedido y de!uel!e una respuesta.
,estor de procesos
*rear y borrar procesos. Arrancar y parar procesos /scheduler0. )incronizacin y comunicacin entre procesos.
!istema de proteccin
&ecanismos para controlar el acceso de procesos o usuarios a los recursos de los usuarios o del sistema. Asigna a cada recurso del sistema un due2o, grupo y permisos.
#ro-rama! 2 .roce!o!
Podemos decir 'ue un programa es un archi!o o conjunto de archi!os 'ue contienen cdigo ejecutable en un determinado sistema operati!o y en general se lo almacena en un medio permanente tal como disco rgido o *@ U @I@. 8n proceso es el programa en ejecucin es decir, ya ubicado en la memoria de lectura Uescritura /!ulgarmente #A&0 y apuntado por el contador de programa del microprocesador o microcontrolador en cuestin. os sistemas operati!os actuales, $indows, inuG, &ac, etc., pueden ejecutar !arios de estos procesos >al mismo tiempo? /no siempre es as pero parece como si lo -uese0. :ambi3n puede suceder 'ue el mismo programa se lo ejecute !arias !eces al mismo tiempo, por ejemplo tener el mismo editor de teGto abierto dos !eces con dos documentos distintos. os procesos tienen la memoria di!idida en tres partesA !e-men o de c3di-o, 'ue es donde est propiamente el cdigo a ejecutar, !e-men o de da o!1 donde por ejemplo se almacenan las !ariables y un !e-men o ! acI o .ila1 'ue se utiliza para almacenar direcciones de salto entre -unciones y !ariables o datos 'ue se pasan a -unciones. Entre el segmento de datos y stac= en muchos casos 'ueda una zona libre. os procesos tienen bsicamente tres estados posiblesA isto /preparado para se ejecutado0 *orriendo /ejecutandose0 (lo'ueado a transicin de li! o a corriendo se produce cuando el conmutador de tareas decide entregarle el procesador a un proceso 'ue ya estaba listo. a transicin de corriendo a li! o se produce cuando el conmutador de tareas decide 'ue un proceso ha cumplido el tiempo de corrida especi-icado. a transicin de corriendo a $lo+,eado sucede cuando el proceso debe esperar un e!ento,
por lo tanto el conmutador de tareas ejecuta otro proceso 'ue se encontraba listo. a transicin de $lo+,eado a li! o se realiza cuando el e!ento esperado sucede. "o tiene sentido la transicin de listo a blo'ueado.
*uando se crea un proceso nue!o, este se carga en la memoria de lecturaUescritura asignndosele el estado de listo. os procesos siempre -inalizan en el estado corriendo de!ol!iendo los recursos 'ue estaba utilizando /por ejemplo liberando la memoria 'ue estaban ocupando sus tres segmentos0. Para administrar los procesos y permitir su correcto -uncionamiento eGiste en el sistema operati!o una estructura denominada Process *ontrol (loc=, por sus siglas P*( 'ue contiene la in-ormacin de cada uno de los recursos utilizados por ese proceso, y cada !ez 'ue se conmuta a otro proceso se debe actualizar el P*( del proceso, por ejemplo indicando 'ue se cambia su estado de listo a corriendo. Esta estructura en general es directamente dependiente del sistema operati!o en cuestin y cada uno la arma de distinta manera aun'ue en general poseen la misma in-ormacin tal comoA #egistros del procesador utilizados Ialor del contador de programa y puntero de pila En 'ue estado se encuentra el proceso :iempo 'ue ha utilizado del procesador 8n nJmero 'ue identi-ica al proceso denominado P6@ Prioridad del proceso 8n mapa de bits 'ue indica cual interrupcin de hardware esta disponible para ese proceso Etc.
8n proceso puede a su !ez >disparar? procesos a los 'ue se los suele denominar hijos. El proceso raz recibe el nombre de padre. os procesos pueden -inalizar por distintas causasA *uando el proceso ejecuta su ultima instruccin el sistema operati!o lo borra de la memoria o ejecuta la llamada eGit/0 al sistema. En ambos casos se liberan los recursos. El proceso padre puede -inalizar la ejecucin del proceso hijo. El sistema operati!o termina con el proceso hijo al >saber? 'ue ha terminado el proceso padre.
Esto se hace para no tener procesos hu3r-anos o zombis 'ue 'ueden >muertos? en la memoria tomando recursos 'ue ya no necesitan. EGisten llamadas al =ernel tal como =ill 'ue realiza esta tarea.
-inales de los E9 sacan la primera !ersin de un ).%. 'ue re!olucionara la in-ormticaR el 8"6V. El 8"6V es hoy en da, casi H9 a2os despu3s de su primera !ersin, para mucha gente 'ue se dedica al mundo de los computadores, el Jnico ).%. real de redes. @e hecho es el 'ue se maneja en las administraciones y redes con gran hardware incorporado. )e caracteriz en a'uel entonces por ser un ).%. 'ue incorporaba dos conceptos totalmente nue!os, la multitarea y acceso multiusuarioR y durante mucho tiempo -ue el Jnico 'ue se utiliz en las redes. Este panorama se sigui durante unos cuantos a2os, entre los cuales, en el mundo de los ).%. se iban sacando nue!os conceptos y todos ellos emanaban del 8"6V. 8no de esos conceptos era la &emoria Iirtual, tan ampliamente utilizada en los ).%. modernos. @ando un gran salto en el tiempo nos !amos a -inales de los a2os F9. Por a'uel entonces un -abricante de computadoras sac la primera del tipo personal, esa casa -ue Apple. El 3Gito -ue tal 'ue enseguida otras casas empezaron a desarrollar computadoras personales, entre ellas emergi 6(&. *ada una de esas casas dise2 una serie de )istemas %perati!os para sus m'uinasR Apple el &ac %), 6(& el *PU&, 'ue pronto -ue sustituido por un ).%. 'ue dise2 (ill ,ates y sus colegas, el @%). Ambos )istemas %perati!os para su 3poca -ueron re!olucionarios ya 'ue el @%) intentaba tomar el manejo de archi!os del 8"6V pero limitando la potencia del 8"6V a un slo usuario. Por contra, el &ac %) dise2aba un ).%. totalmente nue!o basado en una 6nter-az ,r-ica. Algo 'ue rompi la tendencia de los )istemas %perati!os 'ue se dise2aron hasta entonces. &ientras 6(& opt por compartir sus licencias a todo -abricante, Apple no lo hizo. Esto -ue la base del mercado de los P*Ns 'ue conocemos hoy en da. 8na ar'uitectura basada en la conecti!idad de -abricantesR P* y compatibles, y una ar'uitectura totalmente particular como son los Apple. A mediados de los D9 surgi, de la alianza &icroso-t+6(& un ).%. 'ue en principio sera destinado a sustituir el @%), ese )istema -ue el %)UC. Este sistema apro!echaba las nue!as caractersticas de los P*Ns de entonces e introdujo un concepto nue!o al @%), la multitarea. Poco tiempo despu3s se produjo una ruptura, el dJo &icroso-t+6(& se rompa. Por un lado 6(& seguira con el %)UC, por otro lado &icroso-t desarroll un programa basado en el carcter intuiti!o del inter-az gr-ico del &acintosh, $indows. Este programa, 'ue en principio -ue catalogado como >menor?, ya 'ue imperaba el @%) sobre el P*, en poco tiempo se con!irti en el programa ms !endido para P*Ns. En principio no -ue nada ms 'ue una aplicacin 'ue necesitaba del @%) /$indowsH.440, pero el tiempo y los usuarios demandaron 'ue se con!irtiera a un ).%. completo. :ras !arios a2os en los 'ue &) !ea como suba su prestigio en el mercado de los P*Ns hasta cotas casi impensables 49 a2os antes /el D9M de los entornos %perati!os 'ue se utilizan en el mundo son de &) y el EBM de las )uites de o-icina tambi3n, sin contar con otras aplicaciones como compiladores, )er!idores )1 , etc.0, se sac el $indows 5V, el ).%. ms utilizado hoy en da en todo el mundo, 'ue no es el mejor. Entre sus caractersticas destacan la multitarea, un inter-az de usuario muy intuiti!o y un cliente de redes. El @%) slo era monotarea y -ue el ).%. del P* durante ms de 4B a2os. 7oy en da, 'ue las aplicaciones son !iejas al a2o, constituye todo un r3cord 'ue !a a ser muy di-cil de superar. @esde el a2o 4559, surge entre los usuarios una demanda 'ue oblig a &) al desarrollo de un ).%. 'ue apro!echara la inter-az de $indows, pero orientado al mundo empresarial. Ese embrin -ue denominado ":, y luego rebautizado a $indows ":. Ese ).%. apro!ech la inter-az e intuiti!idad de $indows para lle!arla a las redes, 'ue hasta entonces segua dominada por el 8"6V, 'ue ya cumpla sus CC a2os de eGistencia. :ras un par de a2os de es-uerzos sale a la luz $indows ": y sus caractersticas son, como ).%. orientado a las redes, multitarea, estabilidad y multiusuario. )us contras son eGcesi!os recursos para poder ser utilizado en una red medianamente grande. Entre tanto 6(& continu mejorando el %)UC, y es en 455K en pleno retraso de &) por sacar un ).%. real para P* /entonces solo eGista como ).%. el @%)0, cuando 6(& saca el %)UC H.9, apodado
$arp. Este ).%. $arp se caracterizaba por tener un multitarea muy rpida, estabilidad enorme y una compatibilidad hasta entonces no posible. Era capaz de ejecutar aplicaciones @%), ms rpidas y con ms estabilidad 'ue el @%). S lo mismo con $indows. as aplicaciones $indows se ejecutaban mejor y de -orma ms estable sobre %)UC 'ue sobre el propio $indows, adems de dar cobertura a todas las aplicaciones 'ue se desarrollaran para %)UC. El a2o 'ue !a desde mediados de 455K hasta -inales de 455B /'ue es cuando &) saca el $indows 5B0 el %)UC, pese a lo 'ue se pudiera suponer, no eGperimenta un gran crecimiento. )in embargo, &) iba a apro!echar ese tiempo muy bien. "o -ue un retraso debido a mejoras del ).%. /como -ue justi-icado el retraso0, ya 'ue cuando $indows 5B sali segua adoleciendo de la inestabilidad de su antecesor y era ms lento 'ue %)UC. Ese tiempo, lo dedic al es-uerzo ms grande 'ue ha eGistido por desmarcarse del resto de la competencia. Ese a2o se dedic a crear las AP6Ns /herramientas 'ue utilizan los desarrolladores de so-tware para un ).%.0 ms di-ciles del mercado, y &) dara esa documentacin a los desarrolladores siempre y cuando no desarrollasen so-tware en otro ).%. )i sumamos lo comentado en los dos Jltimos prra-os tenemos la jugada ganadora de &) el por'u3 de su 3Gito. A -inales de 4554 surge el -enmeno ms re!olucionario 'ue ha eGistido en la in-ormtica. 8na persona llamada inus :or!alds, estudiante de in-ormtica -inland3s, 'uiere desarrollar un clnico del 8"6V. 7asta entonces el Jnico ).%. 'ue se utilizaba a ni!el empresarial era 3se. S para ello pide ayuda por 6nternet a otros programadores con las siguientes -rasesA Echas de menos los das de Minix 1.1, cuando los hombres eran hombres, y escriban sus propios drivers? Ests sin ideas y deseas tener un sistema operativo que puedas modificar a tu anto o? !e frustra disponer s"lo de Minix? #asas las noches en vela para depurar tus cuidados pro$ramas? &ucha gente empez a trabajar en el sistema. A partir de la !ersin 9.55, en la "a!idad de 455H, comenz la distribucin masi!a. o 'ue llamaba la atencin de este proyecto es 'ue era gratis. S totalmente annimo. "o haba una casa detrs de 3l 'ue se hiciera responsable del proyecto. En estos das 'ue la marca lo es todo, no slo result romntico sino 'ue mucha gente se interes por el tema ms de lo debido. 7oy por hoy, inuG /as se llam el proyecto, en honor a su in!entor0 es el clon 8"6V ms !endido del mundo y debido a 'ue toda la in-ormacin sale por 6nternet, salen !ersiones cada !ez mejores en muy poco periodo de tiempoR hasta llegar al caso de 'ue son ms rpidas las !ersiones 8"6V de inuG 'ue las de los propios -abricantes tales como )un, 6(& o )*%. )i a eso le sumamos 'ue el a2o 455E la "A)A eligi como mejor ).%. de redes al inuG #ed7at !K.4, nos da una idea del -enmeno 'ue es inuG en el mercado. El perodo 'ue !a desde 455H hasta 455E se caracteriz por una salida eGtraordinaria de )istemas %perati!os al mercado, ya 'ue &) 'uiso introducirse en el mundo de las redes con nue!as !ersiones de $indows ":, 6(& sac una nue!a !ersin del %)UC, destinado a sustituir al @%), &) tambi3n sac $indows H.GG y $indows 5B 'ue -inalmente -ueron los estndares del mercado, )un y otros con !ersiones nue!as del 8"6V y el nue!o inuG 'ue poco a poco ganaba ms adeptos, incluso ya en centros uni!ersitarios. &), con $indows ":+C999 apost sobre las redes y se dedic a sacar !ersiones cada una de ellas mejores y ms estable 'ue la anterior, pero con el mismo problema de sus antecesoras, el eGcesi!o nJmero de recursos de hardware necesarios para administrar una red medianamente grande. En este nue!o milenio y hasta la -echa, se ha caracterizado por un a-ianzamiento de los Entornos %perati!os a ni!el particular $indows, a ni!el de redes inuGU8"6V, a ni!el de dispositi!os
m!iles Android y la desaparicin del %.)UC. #esumiendo, tras este perodo de cerca de H9 a2os de historia, hay una serie de )istemas %perati!os, 'ue gozan, justa o injustamente, para suministrar al usuario herramientas su-icientes para utilizar en un computador con capacidad plena de coneGin a 6nternet.
Captulo @
@iagramacin estructurada
En los prGimos captulos se tratarn los conceptos y tareas necesarias para realizar un programa. a programacin consta de dos tareas 'ue son la diagramacin y la codi-icacin.
Diagramacin
a -ase de diagramacin consiste en resol!er el problema y presentar una solucin por medio de un medio de -cil interpretacin 'ue permita 'ue otra persona pueda e-ectuar una re!isin de la lgica aplicada. *onsta de K -asesA Anlisis del problema @eterminacin del algoritmo Aplicacin del algoritmo #e!isin
En conclusin cuando se encara un problema es muy importante analizar los datos disponibles e indicar cuales son indispensables, cuales super-luos y cuales nos -altan.
Revisin
En ingeniera todo procedimiento debe ser !eri-icado para encontrar posibles errores o para optimizar lo ya hecho, nosotros utilizaremos la denominada prueba de escritorio como m3todo para lle!ar a cabo la etapa de re!isin.
Codi(icacin
a -ase de codi-icacin consiste en traducir el diagrama a un lenguaje espec-ico />*?, PA)*A R (A)6*R ;%#:#A"0.
8na diagramacin /programa0 estructurada est -ormada por segmentos, cuya longitud puede !ariar desde unas pocas instrucciones hasta !arias hojas de codi-icacin, aun'ue es pre-erible 'ue esta longitud sea lo menor posible. "aturalmente, esta subdi!isin en segmentos re'uiere un so-tware apropiadoA el grado de modularizacin 'ue se consiga est estrechamente !inculado al lenguaje 'ue se emplee y a las caractersticas de su compilador o int3rprete. a diagramacin estructurada permite reducir el tiempo de prueba /testing0 y la puesta a punto /debugging0 del programa y, por otra parte un programa -ormado por segmentos bien de-inidos y -ciles de leer tiende a hacer ms simple, rpido y menos costoso su mantenimiento.
Algoritmo
8n algoritmo es el conjunto de manipulaciones matemticas y de estructuras -uncionales 'ue nos permitan realizar un programa 'ue ejecute una o !arias acti!idades espec-icas. Para elaborarlo, debe pensarse detallada y ordenadamente todos los pasos 'ue realizar el programa.
Al-ori mo e! la 8orma en +,e !e lle-arK a la !ol,ci3n del .ro$lema a ra*H! de .roce!o! +,e !e de$erKn realiJar.
ini.io
PROCE!O
/in
3. "o se permite el solapamiento de los procesos /!iolara la primera regla ya 'ue no eGistira un Jnico inicio y un Jnico -in0
Sentencia Sentencia
4. @e acuerdo al :eorema de (om y .acopin cual'uier diagrama /programa0 se resuel!e con slo tres estructuras lgicas de controlA
I M P O R % A ' % E 0
)i bien eGiste la posibilidad de utilizar $oto, no se recomienda su uso sal!o en a'uellos casos 'ue lo !uel!en imprescindible.
&ec!encia
Es una sucesin de procesos 'ue se ejecutan en el mismo orden en 'ue aparecen en el diagramaA
"
Es la ms simple de las estructuras y es comJnmente la primera 'ue se aprende en el estudio de cual'uier lenguaje de programacin, aun cuando no se trate de un lenguaje estructurado. *ada uno de estos blo'ues tiene una Jnica entrada y una Jnica salida, de modo 'ue cumple con la primera regla de la diagramacin estructurada. As, esta secuencia puede ser tratada como un Jnico segmento, lo 'ue permite ampliar el concepto, ya 'ue cada blo'ue puede representar desde una instruccin simple hasta un subprograma completo.
&eleccin (condicional)
En este caso, se trata de decidir entre dos acciones /procesos0 a seguir segJn el !alor de !erdad de una proposicin lgica.
"
)i la proposicin . es !erdadera se ejecuta el segmento A, si es -alsa se ejecuta el (. )on procesos EV* 8SE":E), se ejecuta o uno o el otro. Esta estructura se conoce como 5A@"LE)@E?BE 'ue traducido al castellano podra ser B5@ E)":)CEB@E) CAB: C:)"MAM5:. 8no de los creadores de la diagramacin estructurada *.A. 7oare, generaliz la estructura de seleccin dando la posibilidad de elegir entre ms de dos alternati!as. En este caso no se trata de decidir de acuerdo al !alor de !erdad de una proposicin lgica. a decisin, se toma segJn un
1 2
!1
!2
!3
En caso de no eGistir esta Jltima, debera remplazarse por una estructura como estaA
p=1
V
!1
p=2
V
!2
p=n
V
!n
teracin
Este tipo de estructura se utiliza para la repeticin de un proceso. :enemos dos alternati!as 'ue se ilustranA
p
$
p
$
23i4e
do523i4e
En el caso de D'ile, se ejecuta el proceso A mientras la proposicin lgica p sea !erdadera. En el caso de do@D'ile, se ejecuta el proceso A hasta 'ue la proposicin lgica p sea -alsa.
I M P O R % A ' % E 0
En el ciclo D'ile puede ser 'ue el proceso A no se ejecute nunca si la proposicin . resultara -alsa, mientras 'ue para el do@D'ile como mnimo el proceso se ejecutar una !ez.
@onde hemos representado la secuencia A,(,*. Para la seleccin, en este caso entre A y (, el diagrama es /i80A
p V Sentencia A Sentencia B F
h V
m V C B A F
F E
k V h V F G F D F
while p
El del do@D'ile tiene dos representaciones. )e podr utilizar cual'uiera de las dos segJn la pre-erencia del programadorA
while p
#"
while p
Para el caso de una decisin mJltiple /switch0, donde se agrega una opcin para cuando se da una alternati!a no pre!istaA
switch n 1 Sentencia A 2 Sentencia B D Sen$ ten$ cia C
+ociones de #se!docdigos
El pseudocdigo es cual'uier lenguaje 'ue nosotros entendamos y 'ue nos sir!a para elaborar algoritmos. En caso de 'ue el programa sea muy eGtenso, podemos determinar un pseudocdigo donde se determinen las -unciones principales del programa y acto seguido elaborar el pseudocdigo de esas -unciones. Por lo tanto un programador puede escribir en pseudocdigo sin estar atado a reglas de sintaGis propias 'ue posee cual'uier lenguaje. Esto por ende, -acilita bastante la creati!idad al tener mayor libertad en la escritura. El .!e,doc3di-o 'ace re8erencia a la , iliJaci3n de ,n len-,a0e .ro.io .ara de!cri$ir lo! .roce!o!.
Ieamos un ejemploA
comien%a variables& a,b,c&real' escribe()Este pro$rama encuentra las races reales de un polinomio de se$undo $rado de la forma ax*+bx+c donde a,by c pueden ser cualquier valor real. , continuaci"n, escribe los coeficientes de la ecuaci"n& )-' escribe()a. )-' lee/a0R escribe/NbQ N0R lee/b0R escribe/NcQ N0R lee/c0R G4Q/+b+raiz de W/bC+Kac00UCaXR GCQ/+bPraiz de W/bC+Kac00UCaXR escribe/N as races de la ecuacion A N0R primeraQG4 segundaQGC N0R @espu3s de tener el pseudocdigo del programa, el siguiente paso es codi8icarlo en el lenguaje 'ue escojamos. En este caso, *. a !entaja de tener el pseudocdigo del programa es 'ue podemos codi-icarlo en 3l o los lenguajes 'ue deseemos.
'jem#los de a#licacin
MealiJar ,n .ro-rama en el +,e !e in-re!en do! n9mero! 2 l,e-o realice la re! a e in8orme !i el re!,l ado del mi!mo e! .o!i i*o1 ne-a i*o o cero.
leer 'nr"1( leer 'nr"2( resta ) nr"1 $ nr"2 resta % &
V F
"um M C es el resto de la di!isin por C MealiJar ,n .ro-rama +,e .ida ,n n9mero 2 lo m,e! re .or .an alla1 l,e-o .ida o ro 2 realice lo mi!mo. A!O de$e 'acer re.e idamen e 'a! a +,e !e in-re!e ,n cero1 el c,al no de$e mo! rarlo. #esolucin con D'ileA
1eer 2 while ' 2 5) & ( M"strar 2 1eer 2
MealiJar ,n .ro-rama +,e con*ier a ,n n9mero en !i! ema decimal al !i! ema $inario. Para esto, !amos di!idiendo al nJmero en base 49 por C, repitiendo hasta 'ue el cociente de menor 'ue 4. :omamos los restos de cada di!isin, el Jltimo cociente y tenemos el binario buscado.
scan. '+4#+6 7n 3er"( BI2 ) & !"tencia ) & while 'n 3er" % &( Rest" ) n 3er" 4 2 n 3er" ) n 3er" 8 2 BI2 ) BI2 0 Rest" 9 1& : !"tencia !"tencia 00 !rint. 'BI2(
Dia-ramar en C'a.in .ara realiJar ,n al-ori mo +,e calc,le el 8ac orial de ,n n9mero. Bi el
n9mero e! ne-a i*o de$e mo! rar la le2enda ;)o e(i! e<. Me!ol*er median e el ,!o de D'ile1 do@D'ile 2 8or. #esolucin con D'ileA
1eer 2 2 %) & V F)1 X)1 while ' X *) 2 ( F)F9X X)X01 M"strar F M"strar +2" e;iste+ F
Berie de Ai$onacci
;)1/<)1/c)2 1eer -al"r #" 2);0< c)c01 ;)< <)2 while ' 2 * -al"r( 2 )) -al"r V M"strar +T=r3in" >+6 c M"strar +Serie >+6 < M"strar +Anteri"r >+6 ; M"strar +?"steri"r >+6 < F
:$ enci3n de mK(imo! 2 mOnimo! )e e!aluarn las notas correspondientes a un curso de H9 alumnos. Para esto, se ingresan por cada alumno todas sus notas, los cuales no necesariamente tendrn la misma cantidad de notas. Por cada alumno se in-ormar la mayor y la menor nota obtenida as como tambi3n su nota promedio. )e di-erencia cada lote de notas por un !alor no !lido. as notas se numeran del 9 al 49.
."r 'c"nt ) & / c"nt * 3& / c"nt00( Acc ) & Cant ) & 1eer 'n"ta( while 'n"ta *) 1& ( Cant )) & V n"ta % Ma; Ma; ) n"ta V F n"ta * Min Min ) n"ta Ma; ) n"ta V Min ) n"ta Acc ) Acc 0 n"ta Cant ) Cant 0 1 1eer 'n"ta( V ?r"3e#i" ) Acc 8 Cant M"strar 'Min( M"strar 'Ma;( M"strar '!r"3e#i"( M"strar +2" ha< #at"s+ Cant 5 ) & F F F
2"ACrece ) & / 2"ADecrece ) & 1eer Ant ."r ' cant ) & / cant * @& / cant 00 ( 1eer Act al Ant % ) Act al V 2"ACrece ) 1 Ant * ) Act al V 2"ADecrece ) 1 Ant ) Act al 2"ADecrece )) & V M"strar +Or#ena#" en ."r3a #ecreciente+ 2"ACrece )) & V M"strar +Or#ena#" en ."r3a creciente+ F F F F
: ra! 8ilo!o8Oa! de .ro-ramaci3n Sa hemos !isto 'ue una -orma de >pensar? un cdigo es por medio de la programacin estructurada. EGisten muchas otras maneras de pensar un cdigo y 'ue se adaptan a un gran nJmero de situaciones. Entre estas se encuentran la programacin orientada a e!entos, las m'uinas de estado y la programacin orientada a objetos. :rien ada a e*en o!: 8n programa orientado a e!entos est en general ntimamente relacionado con las interrupciones. Estas interrupciones pueden estar relacionadas con procesos eGternos o internos. *omo proceso eGterno podramos citar un sistema de alarmas donde algo sucedi y se in-orma este >e!ento? por medio del cambio de cero a uno de una se2al el3ctrica. )egJn el tipo de e!ento /puerta abierta, !entana abierta, !idrio roto etc.0 ser el cdigo 'ue se ejecute para resol!er el suceso. *omo proceso interno podra ser un contador asociado a una base de tiempo /timer0 'ue a partir de una cuenta llega a cero y produce una interrupcin 'ue a su !ez ejecuta una porcin de cdigo para resol!er esto. El mo!imiento del mouse se resuel!e con cdigo orientado a e!entosA se mo!i el mouse, se presion la tecla derecha o iz'uierda, etc. #or mK+,ina de e! ado!: 8n ejemplo de m'uina de estados es el sem-oro de la calle. )i tomamos como >estado inicial? el color !erde, en un cierto tiempo pasa a amarillo, y en otro cierto tiempo a rojo. @el rojo pasa a encender la amarilla, !ol!iendo al !erde e inicindose nue!amente el ciclo. *ada estado rojo, !erde, amarillo, es un estado estable por un >cierto tiempo?. El tiempo de cambio de un estado a otro es !ariable entre estados. rojo y amarillo
!erde
amarillo
rojo
%bs3r!ese 'ue eGiste una secuencia per-ectamente de-inida y 'ue el cambio entre un estado y otro puede ser por un e!ento, tal como un contador de tiempo 'ue llego a un determinado !alor. :rien ada a o$0e o! )e utiliza particularmente para resol!er grandes programas, tales como juegos, sistemas operati!os o programas con un gran numero de alternati!as de uso, tales como los *A@Ys, programas para la solucin de problemas matemticos, simuladores electrnicos, etc. *ada objeto tiene lo 'ue se denomina propiedades y -unciones asociadas al mismo. 8n objeto es por ejemplo una !entana de $indows, y sus propiedades pueden ser el color, el tama2o, su ubicacin en la pantalla, etc. Para generar estos programas eGisten lenguajes espec-icos como lo son Iisual (asic, *PP, .a!a, entre otros. *omo comentario -inal, un mismo programa puede contener !arias de estas -iloso-as combinadas.