Sunteți pe pagina 1din 53

Captulo 1

Estructura de una computadora


Antecedentes histricos
Ao 3000 A.C. Primeros bacos y en el 500 D.C. el baco actual. Ao 830 D.C. Al Kuwaritzmi, propone la metodologa de trabajo del uso de algoritmos. a palabra algoritmo deri!a del nombre de este matemtico. Ao 1614 "epper logaritmos. Ao 1621 #egla de clculo $illiam %ughtred Ao 1650 &'uina sumadora y restadora de (laise PA)*A a m'uina era automtica con !arios diales Ao 1671 *alculadora de Engranajes cilndricos + ,ott-ried eibniz *alculadora capaz de multiplicar y di!idir Ao 1801 Primera m'uina programada con cintas per-oradas + .ac'uard Ao 1833 *harles (abbage *omienza el proyecto del 'ue ser acreditado como el primer ordenador mecnico. Ao 1842 Primeros Programas Escritos, por Ada Augusta o!elace /asistente de (abbage0.

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

Pasaje del sistema decimal al sistema binario


a cantidad de nJmeros 'ue se pueden combinar con " dgitos en el sistema binario est dado por la eGpresin 2) Ejemplo A *on K dgitos binarios se puede representar todos los nJmeros 'ue !an del cero al 'uince es decir diecis3is nJmeros en total. a con!ersin se realiza mediante sucesi!as di!isiones en las 'ue el di!isor es la base del sistema al 'ue se desea llegar. a Jltima di!isin es en la 'ue el cociente es menor 'ue el di!isor. uego se toman el Jltimo cociente /40 y los restos tal como se muestra a continuacinA
8 0
D49 Q 4999C

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

Pasaje del sistema hexadecimal al sistema decimal

;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

Pasaje del sistema decimal al sistema hexadecimal


a con!ersin se realiza mediante sucesi!as di!isiones en las 'ue el di*i!or e! la $a!e del !i! ema al +,e !e de!ea lle-ar. a Jltima di!isin es en la 'ue el cociente es menor 'ue el di!isor. uego se toman el Jltimo cociente y los restos tal como se muestra a continuacin /recordar 'ue se deben eGpresar los restos o incluso el Jltimo cociente en el sistema heGadecimal0A
1731 16 3 108
4FH449 Q E*H4E

16 6

12

Pasaje del sistema hexadecimal al sistema binario


A continuacin se presenta la tabla de con!ersin entre los nJmeros del sistema heGadecimal y los correspondientes del binario. *omo hemos dicho, para obtener 4E combinaciones distintas sern necesarios K dgitos binarios por lo 'ue la con!ersin de heGadecimal a binario lle!ar K dgitos binarios por cada heGadecimal.
)istema 7eGadecimal 9 4 C H K B E F D 5 A ( * @ )istema binario 9 9 9 9 9 4 9 4 4 9 4 9 4 4 4 4 9 9 9 9 9 4 9 4 4 9 4 9

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

AD@4E Q 4949 4999 4494C 4*(4E Q 4 4499 4944C

Pasaje del sistema binario al sistema hexadecimal


4494 4494C Q @@4E 449 9944C Q EH4E

Pasaje del sistema decimal al sistema octal


a con!ersin se realiza mediante sucesi!as di!isiones en las 'ue el di*i!or e! la $a!e del !i! ema al +,e !e de!ea lle-ar. a Jltima di!isin es en la 'ue el cociente es menor 'ue el di!isor. uego se toman el Jltimo cociente y los restos tal como se muestra a continuacinA
339 3 42
HH549 Q BCHD

8 8 5

Pasaje del sistema octal al sistema binario


KBFD Q 499 494 444C FK9D Q 444 499 999C

Pasaje del sistema binario al sistema octal


44944494C Q HHBD 4499944C Q 4KHD

@e-inicin de bit, byte, nibble


os sistemas electrnicos digitales -uncionan con-rontando dos ni!eles de !oltaje /hay tensin contra no hay tensin0. %bser!e 'ue se presentan dos estados, por lo 'ue el sistema binario es el adecuado para representar estos dos estados. El transistor, elemento -undamental como dispositi!o de control, debe ser coneGionado a una -uente de tensin constante para permitir su -uncionamiento. @e esta manera, le estamos -ijando lo 'ue para los electrnicos se conoce como .,n o / o .,n o de ra$a0o1 caracterizado por una determinada tensin y corriente. @e acuerdo al modo en 'ue le sean -ijadas las tensiones, tendremos di-erentes puntos de trabajo, 'ue permiten bsicamente tres modos de -uncionamientoA normal1 cor e 2 !a ,raci3n. El e! ado normal caracteriza a las con-iguraciones tpicas de ampli-icacin de se2al /un ampli-icador de audio por ejemplo0. os estados de cor e y !a ,raci3n son los implementados en los circuitos de los sistemas electrnicos digitales, 'ue simpli-icados sonA

E! ado de cor e

no cond,ce cond,ce

7 7

no 'a2 en!i3n 'a2 en!i3n

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.

Con*enio! de n9mero! !i-nado!


:odas las representaciones de magnitudes en las distintas bases !istas hasta el momento son no signadas. Esto hace 'ue las magnitudes !ayan desde cero hasta un mGimo positi!o 'ue depende de la cantidad de ci-ras y smbolos 'ue la -ormen, tal como se ha !isto. )in embargo, es de !ital importancia tener una representacin de nJmeros con signo, es decir, 'ue !aya desde un mGimo negati!o a un mGimo positi!o. @e esta -orma se podrn realizar todas las operaciones matemticas bsicas ya 'ue al momento solo podamos sumar y ahora podemos adems tener la resta, la multiplicacin /como sumas sucesi!as0 y la di!isin /como restas sucesi!as0. Sa se !er 'ue todas las operaciones se resuel!en por sumas utilizando el con!enio adecuado. 8n con!enio, segJn el diccionario de habla castellana es un pacto o acuerdo. Esto es de -undamental importancia ya 'ue !i no !e !a$e en +,e con*enio !e almacen3 ,na cier a ma-ni ,d no e! .o!i$le conocer la ma-ni ,d. os con!enios de nJmeros signados ms -recuentes sonA &agnitud y signo *omplemento a uno *omplemento a dos

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

Ar'uitectura bsica /*. P. 8., memoria, 6U%0


El es'uema ms elemental 'ue podemos plantear es el siguienteA

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.

@e-inicin de memoria. (uses de direccin y de datos. *apacidad de memoria. :ipo de memoria


8n dispositi!o de memoria es todo a'uel 'ue permite guardar in-ormacin para luego ser utilizada. El elemento ms simple de memoria es el registro.

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

!A#I A! E# ECO I$ICA OR

)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&.

Unidad Central de Proceso (CPU)


Esta compuesto por dos blo'ues

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!

!ECUE'CIA OR !%A%U! "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).

Unidad Aritmtica y Lgica (ALU)


En rigor la Jnica operacin aritm3tica 'ue realiza la A 8 es sumar y a tra!3s de procedimientos puede slo con sumas realizar otras operaciones /Por ej. se puede obtener el resultado del producto 4BK sumando el !alor 4B cuatro !eces0. Pero para simpli-icar nuestro anlisis consideraremos 'ue nuestra m'uina elemental puede realizar las distintas operaciones aritm3ticas de acuerdo al microcomando recibido /Esto s es !lido para la suma0. 8na A 8 posee dos registros de entrada 'ue es donde se alojan los datos a tratar y llega a ellos por lo tanto el @A:A (8)R estos registros son el primer operando y el segundo operando. El resultado se aloja en un registro denominado acumulador /A**0 y esta in-ormacin puede ser re'uerida para guardarse en memoria o para ser utilizada en un operando por lo tanto tambi3n se conecta al @A:A (8).

!%A%U! "U!

!%A%U!

ACC A%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.

@ispositi!os de entradaUsalida /6U%0. Peri-3ricos


Estos dispositi!os son los 'ue permiten 'ue la m'uina interactJe con el mundo eGterior y se pueden clasi-icar enA @ispositi!os de solo entradaA :eclado, mouse, lector de cdigo de barras, micr-ono, cmara de !deo, sensor de temperatura, sensor de presin, sensor de de-ormacin, scanners, *@ #%&, etc. @ispositi!os de solo salidaA &onitor, impresoras, plotters, parlantes, motores paso a paso, rele!adores, etc. @ispositi!os de entrada U salidaA @iscos magn3ticos, *@ grabables, monitores so-t touch, etc.

Ar'uitectura de Ion "eumann


)1
PC A RE!! "U!

MEMORIA leer escribir

I
C#(

CO

IR
A D D

!ECUE'CIA OR A !%A%U! "U! &C A%A "U! RE!! "U!

E C A%A

A%A "U!

!%A%U!

ACC

2*OP

1*OP

PC CO &C A#U IR !%A%U! I

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

I/O ACC A A%A EC

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.

;ase de bJs'ueda. Ejecucin de instrucciones


EjemploA utilizando la Ar'uitectura de Ion "eumann, sumar dos nJmeros y el resultado guardarlo en memoria. @ Aa!e de $9!+,eda de .rimera in! r,cci3n ;ase de bJs'ueda propiamente dicha A@@ EE# 6 P* @A:A

Preparacin para la instruccin siguiente P* P* P 4

@ 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

Preparacin para la instruccin siguiente P* P* P 4

Car-ar el !e-,ndo o.erando con el !e-,ndo da o a !,mar A@@ EE# @6#

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

Preparacin para la instruccin siguiente P* 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.

"! es !n sistema o#erati$o


Es un programa 'ue realiza lo siguienteA ActJa como intermediario entre los programas de aplicacin y el hardware de la computadora. Administra todos los recursos de la computadora, permitiendo 'ue los procesos /programa en ejecucin0 'ue usan la computadora puedan compartir dichos recursos. ActJa como inter-az entre el usuario y el hardware en cuestin.

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.

Finalidad del sistema operativo


Ejecutar los programas del usuario. 7acer 'ue la computadora sea cmoda de utilizar. %perar los recursos de la computadora de -orma e-iciente.

Funciones del sistema operativo


Ieamos primero un diagrama en capas de una computadora, como se muestra en la -igura.
Programas de aplicacin Programas de aplicacin )istema %perati!o 7ardware Programas de aplicacin

*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.

%ardware de !na com#!tadora


El sistema operati!o realiza la intercomunicacin entre los programas de aplicacin y el hardware, o sea maneja el hardware, por lo tanto para entender completamente como -unciona un sistema operati!o es importante conocer el -uncionamiento del hardware.

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.

&er$icios de !n sistema o#erati$o


os ser!icios de un sistema operati!o son utilizados por el programador para crear las aplicaciones. Es importante 'ue el programador conozca como estn implementados esos ser!icios, para poder utilizarlos de una manera mas e-iciente, logrando mejores aplicaciones.

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

*ompilamos y ejecutamos strace.


+ gcc -o hello hello.c + strace ./hello e,ecve(%./hello%, -%./hello%., -/* 1/ vars */.) 0 1 2r3(1) 0 1,415/5d5 open(%/etc/ld.so.preload%, 67896:;<) 0 -1 =:6=:> (:o such file or director?) open(%/etc/ld.so.cache%, 67896:;<) 0 @ fstat(@, $st7mode0A7BC8=DE1F55, st7size041/F, ...*) 0 1 mmap(1, 41/F, G86>78=H9, IHG7G8BJH>=, @, 1) 0 1,51115111 close(@) 0 1 open(%/li2/li2c.so.F%, 67896:;<) 0 @ fstat(@, $st7mode0A7BC8=DE1KLL, st7size0115K@K@, ...*) 0 1 read(@, %(1KK=;C(1(1(1(1(1(1(1(1(1(1(1(1(@%..., 51/F) 0 51/F mmap(1, 51/F, G86>78=H9EG86>7'8B>=, IHG7G8BJH>=EIHG7H:6:<I6MA, -1, 1) 0 1,5111K111 mmap(1, /K4F54, G86>78=H9EG86>7=N=C, IHG7G8BJH>=, @, 1) 0 1,51114111 mprotect(1,511ff111, @25K2, G86>7:6:=) 0 1 mmap(1,511ff111,21541,G86>78=H9EG86>7'8B>=,IHG7G8BJH>=EIHG7CBN=9,@,1,eF111)01,511ff111 mmap(1,51115111,11//2,G86>78=H9EG86>7'8B>=,IHG7G8BJH>=EIHG7CBN=9EIHG7H:6:<I6MA,1,1)01,51115111 close(@) 0 1 munmap(1,51115111, 41/F) 0 1 personalit?(G=87;B:MN) 0 1 getpid() 0 @@5 fstat(1, $st7mode0A7BCC&8E1F21, st7rdev0ma3edev(@, 1), ...*) 0 1 mmap(1,51/F,G86>78=H9EG86>7'8B>=,IHG7G8BJH>=EIHG7H:6:<I6MA,-1,1)01,51115111 ioctl(1, >CD=>A, $O/F11 opost isig icanon echo ...*) 0 1 Prite(1, %&ello 'orld(n%, 12&ello 'orld ) 0 12 munmap(1,51115111, 51/F) 0 1 7e,it(12) 0 Q

)e !e el uso intensi!o 'ue las aplicaciones hacen de las llamadas al sistema.

'$ol!cin de los sistemas o#erati$os

Primera generacin (1945-1955


as m'uinas eran construidas con !l!ulas, eran enormes, ocupaban toda una habitacin. a m'uina era dise2ada, construida, programada y operada por un pe'ue2o grupo de personas. a programacin se realizaba en lenguaje de m'uina, el sistema operati!o aun no se conoca. os problemas 'ue resol!an eran clculos num3ricos, como por ejemplo una tabla con las -unciones seno y coseno.

!egunda generacin (1955-19"5


Aparece el transistor. os programadores escriban sus programas primero en papel /-ortran o assembler0 y lo pasaban a tarjetas per-oradas. uego le entregaban la tarjeta per-orada al operador. El operador le entregaba al programador la salida por impresora del programa. )e perda mucho tiempo mientras el operador hacia sus tareas de cargar programas y retirar la salida de la impresora. @ado 'ue el costo de estos e'uipos eran muy altos, se buscaron -ormas de reducir el tiempo perdido. a solucin -ue el !i! ema .or lo e!, 'ue consista en juntar conjuntos o lotes de tareas similares 'ue se lean con el lector de tarjetas per-oradas y se almacenaban en una cinta, esta tarea se realizaba en una m'uina econmica, de baja capacidad de procesamiento, 'ue eran Jtiles para leer tarjetas, copiar cintas e imprimir. uego de armar el lote de tareas, se lle!aba la cinta a la m'uina 'ue realizaba el procesamiento, esta era muy cara y de alta capacidad de procesamiento para esos tiempos. El operador cargaba un programa especial 'ue lea la primer tarea de la cinta y la ejecutaba, la salida se escriba en una segunda cinta. @espu3s 'ue -inalizaba cada tarea, el sistema operati!o cargaba la siguiente y as sucesi!amente hasta -inalizar todas las tareas contenidas. uego el operador remplazaba las cintas de entrada y salida, la cinta de entrada se remplazaba con una nue!a 'ue contena otro lote para su ejecucin, la cinta de salida se lle!aba a una m'uina econmica de bajo procesamiento, 'ue realizaba la impresin o88@line.

#ercera generacin (195"-19$%


Aparecen los circuitos integrados. Aparecen nue!as t3cnicas, como la multiprogramacin y los sistemas de tiempo compartido. Antiguamente mientras un proceso esperaba 'ue -inalice alguna operacin de entrada+salida, el procesador permaneca inacti!o. a m,l i.ro-ramaci3n consiste en di!idir la memoria en sectores y cargar !arios procesos, cada uno en un sector de memoria, cuando uno de ellos necesita esperar 'ue una operacin de entrada+ salida -inalice, otro proceso puede utilizar el procesador. )i la cantidad de procesos 'ue se cargan en memoria simultneamente son los su-icientes, el procesador permanecer ocupado casi el 499M del

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.

&uarta generacin (19$%-presente


Aparecen los circuitos integrados de gran escala de integracin /contienen miles de transistores en un centmetro cuadrado de silicio0, esto hace disminuir costos y aparecen las computadoras personales. tambi3n aparece el so-tware para computadoras personales, desarrollado para gente 'ue no conoce nada de computadoras y no tiene intenciones de aprender. Aparecen los !i! ema! m,l i.roce!ador, los procesadores comparten la memoria y el reloj. )e incrementa la capacidad de procesamiento y la con-iabilidad, son econmicos. M,l i.roce!amien o !imH rico

*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.

'str!ct!ra de los sistemas o#erati$os


Ieremos bre!emente algunas estructuras de dise2os de sistemas operati!os.

!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.

!istemas en capas (la(ered s(stems


El sistema operati!o esta -ormado por un nJmero de capas, !eremos un ejemplo de E capasA
Ca.a B K H C 4 9 A,nci3n %perador del sistema Programas del usuario &anejo de entrada+salida *omunicacin operador+procesos Administracin de memoria y discos &ultitarea y asignacin del procesador

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.

Partes de !n sistema o#erati$o


,estor de procesos ,estor de memoria principal ,estor de memoria secundaria ,estor del sistema de 6U% ,estor del sistema de archi!os )istema de proteccin

,estor de procesos
*rear y borrar procesos. Arrancar y parar procesos /scheduler0. )incronizacin y comunicacin entre procesos.

,estor de memoria principal


)abe 'ue partes de memoria estn siendo utilizadas y por 'uien. @ecide 'ue procesos cargar cuando la memoria esta disponible. Asigna y desasigna memoria a los procesos /malloc y -ree0.

,estor del sistema de arc-ivos


*rea y borra archi!os y directorios. )oporte de primiti!as para manipular archi!os y directorios. &apeo de archi!os en almacenamiento secundario. (ac=up de archi!os.

!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.

%istoria y e$ol!cin de los entornos o#erati$os en el mercado m!ndial


El primer )istema %perati!o se denomin &ultics, a mediados de los a2os E9. Poco tiempo despu3s, se dieron cuenta los dise2adores de este ).%. 'ue era engorroso y muy di-cil de administrar, entonces se tom la esencia misma del ).%. y el mismo e'uipo de gente 'ue dise2 el &ultics a

-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

.n*lisis del pro/lema


A'u debemos en-ocar el problema y determinar cuales son los datos de 'ue se dispone. A continuacin se debe analizar cuales datos son indispensables, cuales son super-luos o alertar acerca de 'ue los datos son insu-icientes. )i el problema planteado -uera determinar la !elocidad de un tren 'ue recorre 499 Km. en un lapso de una hora nos encontraramos 'ue la resolucin es muy simple ya 'ue eGiste una -rmula para determinar la !elocidad de un m!il y adems contamos con los datos. Pero si al problema anterior le agregamos 'ue transporta B9 pasajeros puede darse la con-usin de intentar utilizar tambi3n este Jltimo dato y llegaramos a la conclusin de 'ue el problema es irresoluble. )in duda hemos incurrido en un error por no haber determinado 'ue el dato de la cantidad de pasajeros era un dato super-luo. )i en cambio el problema consiste en calcular el ngulo de disparo de una prueba de artillera del ej3rcito boli!iano y nos in-orman la !elocidad inicial del proyectil, la masa del mismo, su -orma, la distancia al blanco entre otros datosR podramos pensar 'ue el dato 'ue indica 'ue las pruebas las realiza el ej3rcito de (oli!ia es un dato super-luo, y esta deduccin es incorrecta ya 'ue no es lo mismo si las pruebas se e-ectJan en )anta *ruz de la )ierra 'ue es una zona de baja altura 'ue si se realizan en el destacamento de la *iudad de la Paz la cual se encuentra en el altiplano, por lo tanto lo 'ue realmente sucede es 'ue nos -altan datos para resol!er este problema ya 'ue las condiciones de la prueba !aran -uertemente de acuerdo a su lugar de realizacin.

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.

Determinacin del algoritmo


Esta tarea consiste en encontrar las -rmulas y procedimientos 'ue nos permitan resol!er el problema planteado permiti3ndonos cumplir con el objeti!o propuesto.

.plicacin del algoritmo


Este es el momento de determinar una metodologa para lle!ar a un m3todo gr-ico los pasos anteriores. "uestra metodologa ser la de la @iagramacin estructurada por lo cual debemos respetar sus reglas y obtendremos a cambio unos diagramas de simple interpretacin y adems como !entaja nos encontraremos con 'ue una parte de un problema es -cilmente aplicable en otro permiti3ndonos de esta -orma modularizar partes de los diagramas para -uturas aplicaciones.

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.

Princi#ales conce#tos )!e rigen la diagramacin estr!ct!rada


El primer objeti!o 'ue se trata de conseguir con la diagramacin estructurada es la mod,lariJaci3nR esto es, 'ue el programa est3 compuesto de distintas secciones claramente di-erenciadas, cada una de las cuales resuel!a en -orma completa una parte per-ectamente determinada del problema total. @e esta manera se consigue una gran -leGibilidad para adaptarse a los cambios 'ue pudieran sobre!enir en el -uturo, puesto 'ue cual'uier modi-icacin no eGige un rastreo a tra!3s de todo el programa ni una reestructuracin total del mismo. Esto es lo 'ue a-irma . .*onstantineA > os programas -ciles de implementar y modi-icar son a'uellos -ormados por mdulos simples e independientes. a razn es 'ue la solucin de un problema es ms sencilla y ms rpida si 3ste puede ser subdi!idido en partes 'ue puedan considerarse separadamente. a solucin del problema se di-iculta notoriamente cuando se deben considerar simultneamente todos los aspectos del mismo?.

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.

*e#resentacin del algoritmo


EGisten !arias maneras de hacerlo, enumeraremos tresA @iagramas de -lujo Pseudocdigo @iagramas de *7AP6" /"assi+)chneiderman0

*eglas de la diagramacin estr!ct!rada


1. :odo proceso tiene un Jnico inicio y un Jnico -in. a caracterstica importante de un diagrama estructurado es 'ue puede ser ledo secuencialmente, de arriba hacia abajo, sin tener 'ue e-ectuar saltos de control a lo largo de todo el diagrama.

ini.io

PROCE!O

/in

2. )e permite la inclusin de uno o ms procesos /conocido como anidamiento0

PROCE!O A PROCE!O "

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

)ecuencia )eleccin /condicional0 6teracin /repeticin0

)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

orden pre!iamente -ijado. As es como surge el BN5"CL@CABE

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.

@iagramas de *7AP6" /"assi+)cneiderman0


os diagramas de *hapin son diagramas pensados en -uncin de la diagramacin estructurada. En ellos se eliminan las lneas de -lujo presentes en los anteriormente !istos diagramas de -lujos y presentan la caracterstica de secuencialmente ir de arriba hacia abajo. Presentan un Jnico inicio y un Jnico -in. As, para la estructura secuencial, el diagrama seraA
Sentencia 1 Sentencia 2 Sentencia 3

@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

Ieamos un diagrama ms complejo con !arios i8 anidado!A

h V
m V C B A F

F E
k V h V F G F D F

El diagrama para el D'ileA

while p

C er!" #el cicl"

El del do@D'ile tiene dos representaciones. )e podr utilizar cual'uiera de las dos segJn la pre-erencia del programadorA

#" C er!" #el cicl"

while p

#"

C er!" #el cicl"

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

resta * & M"strar +Es !"siti-a+


V F

M"strar +Es ne,ati-a+

M"strar +Es cer"+

5n-re!ar 20 n9mero! e ir im.rimiendo a+,ello! +,e !ean .are!


."r 'cant ) & / cant * 2& / cant00( 1eer 2 3 V 2 3 4 2 )) & M"strar +Es i3!ar+ F

M"strar +Es !ar+

"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

#esolucin con do@D'ileA


1eer 2 #" 2 5) & V M"strar 2 1eer 2 while ' 2 5) & ( F

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

#esolucin con do@D'ileA


1eer 2 2 %) & V F)1 X)1 #" F)F9X X)X01 while ' X *) 2 ( M"strar F M"strar +2" e;iste+ F

#esolucin con 8orA


1eer 2 2 %) & V F)1 ."r ' X ) 1 / X *) 2 / X00 ( F)F9X 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

5n-re!ar 70 n9mero!. 5n8ormar !i el con0,n o de da o! e! K ordenado en 8orma crecien e o decrecien e

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.

S-ar putea să vă placă și