Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Introduktion til programmering

Lignende præsentationer


Præsentationer af emnet: "Introduktion til programmering"— Præsentationens transcript:

1 Introduktion til programmering
Uge 41 Computer Science Netværk og operativsystemer Kap 3-4 .

2 Plan Sidste gang Netværk og netværksopbygning Protokoller Opgave 5
Netværksprogrammering i Python Operativsystemer Opgave 6

3 Sidste gang Sætninger og udtryk (nye værdier) Kontrolstrukturer
Selektion (if, elif, else) Gentagelse (while- og for-loops) Funktioner (def) (indkapsling)

4 Netværk

5 Netværksopbygning Vi kan skelne mellem flere typer netværk: LAN WAN
Local Area Network WAN Wide Area Network PAN Personal Area networks

6 LAN Eksempler Består af en række arbejdsstationer og servere
IMV, En virksomhed Består af en række arbejdsstationer og servere Filservere, postservere, printservere Databaseservere, webservere Typisk opdelt i to eller flere undernetværk Intranet (lukket WWW)

7 LAN 2 Klienter: Servere: Gigabit, 1000 Mbit 1 Mbit = 125 Kb/s
Kabel: Ethernet, 10 / 100 / 1000 Mbit Trådløst: 11 / 54 Mbit Servere: Gigabit, 1000 Mbit 1 Mbit = 125 Kb/s 100 Mbit = 12.5 Mb/s

8 IMV 5 undernet: 100 Mbit generelt 10 Mbit i terminalrum
Studerende, Ansatte, Trådløst, Printere, Web 100 Mbit generelt 10 Mbit i terminalrum 1000 Mbit til datakontoret (p-drev)

9 Netværks opbygning Stjerne Ring Ethernet/Bus

10 PAN Trådløse, kort rækkevidde
Bluetooth, ca 10 m 768 Kbit ~96 kb/s Forbinder f.eks. mobiltelefoner og lommecomputere

11 WAN Kan forbinde to LAN for en virksomhed
Internettet er et WAN der forbinder mange net Mange medier Telefonlinjer, lysledere, kabel, radio, mikrobølger, satellit

12 Hvad er et net? Et net er defineret ved sin protokol (retningslinjer)
En protokol er en fortolkning af de repræsentationer der transmitteres gennem et fysisk medium Internettet er defineret ved TCP/IP (Transmission Control Protocol / Internet Protocol) Net der bruger denne protokol tilhører Internettet. Net der ikke gør det, tilhører det ikke. Et net kan realiseres i mange fysisk forskellige medier (radiobølger, ethernet, etc.)

13 Internettet En “netværk mellem netværk” Opstod fra ARPAnet i 60’erne
kbit net Baseret på en fælles Kommunikationsstandard TCP/IP

14 Internet Design Alle undernet skal være selvstændige. Der skal ikke være behov for interne ændringer i nettene for at forbinde dem til internettet Kommunikation er “best effort”. Hvis en pakke ikke når målet, sendes den igen (ikke UDP) Nettet bindes sammen af gateways, der ikke ved noget om de pakker der sendes (routers) Der skal ikke være nogen central kontrol Hvis en del af nettet bryder sammen skal resten alligevel kunne fungere (den kolde krig)

15 TCP/IP Transmission Control Protocol / Internet Protocol
Pakke-baseret protokol

16 TCP/IP – lagdelt protokol
Applikation (f.eks. browser) Laver IP-adresse som transportlaget kan forstå (IP) Transportlaget Hakke beskeden i små pakker, forsyne hver pakke med adresse og nummer (TCP) Netværk Bestemmer midlertidig adresse for forsendelsen (IP) Indenfor: send direkte til maskine Udenfor: send til router Max hop-antal (64) Link Skal sende til maskinen med den midlertidige adresse Ethernet: Vent til bussen er stille, og send så Hvis en anden maskine også er begyndt at sende, vent et tilfældigt tidsrum, og prøv igen. Port-nummer Hver applikation har et unikt port-nummer. Webserver:80, ftp:20, 21

17 IP adresser og Protokoller
Alle maskiner på nettet tildeles en IP adresse (eller en router har ekstern) XXX.YYY.ZZZ.WWW (32 bit), IPv4 Faste og dynamiske adresser I alt 4 milliarder adresser ... men vi er ved at løbe tør for dem Ny standard IPv6 (128 bit) I alt 5×1028 adresser

18 Internet anno 1971

19 Internet, USA 1999

20 WWW udvikling

21 URL’er http://vahlstrup.com/lTOE07/plan.html
En URL er en sammensat repræsentation Dens interpretant er fastlagt i HTTP-standarden De objekter den repræsenterer er: En fortolkningsregel En server En sti på serveren Et dokument server sti dokument interpretant

22 DNS Domain Name Server Regler for DNS
I: DNS R: O: Domain Name Server Databaser der forbinder navne med IP adresser -> -> Regler for DNS com, .net, .gov, .mil, .org, .edu, .int areo, .coop, .museum, .biz, .info, .name Landekoder (.dk, .uk etc) ICANN - The Internet Corporation for Assigned Names and Numbers bamse.lir.dk -> min computer -> Ping wikipedia.com

23 DNS igen

24 Applikationslag - protokoller
Udveksling af data mellem programmer Standardiseret, forskellige programmer kan dele data, da de kan forstå det samme sprog HTTP, FTP, POP3, SMTP

25 HTTP Hyper Text Transfer Protokol
Udviklet i Schweiz i starten af 90’erne Tim Berners Lee Nu en standard under W3C, World Wide Web Consortium Overførsel af tekst To-vejs (CGI)

26 Klient-server Klienten sender anmodning om info til server
Server finder info og sender den tilbage GET /pub/WWW/TheProject.html HTTP/1.0 Klient Fx en browser Server Fx en WWW server HTTP/ Content-type: text/html + <xxx> …</xxx>

27 FTP File Transfer Protocol Overførsel af filer mellem maskiner
Abstraktion over den fysiske maskine Kan overføre binære (data) filer og ascii (tekst) filer (ingen oversættelse/ oversættelse) Husk senere når I FTP’er jeres Pythonprogrammer: de skal overføres som ascii filer, ellers virker det ikke Kan sættes i FileZilla

28 POP3, IMAP og SMTP Post Office Protocol v3
Tillader en klient (mailprogram) at hente post fra serveren Henter en kopi af mailen ned på den lokale maskine, og sletter den på serveren IMAPv4 Læser mailen på serveren SMTP Simple Mail Transfer Protocol Lader en klient (mailprogram) sende en mail til serveren, og mellem servere.

29 SMTP eksempel (mail protokol)
S = server C = client S: 220 ESMTP Postfix (220 = service ready) C: HELO mydomain.com (goddag fra mydomain.com) S: 250 Hello mydomain.com (250 = OK) C: MAIL S: 250 Ok C: RCPT C: DATA S: 354 End data with <CR><LF>.<CR><LF> (354 = start mail input, how to end) C: Subject: test message C: From: C: To: C: C: Hello, C: This is a test. C: Goodbye. C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye (221 = service closing) carriage return = ASCII 13 line feet = ASCII 10

30 Trafikmønstre på nettet
Informationen produceres af værten (server) Informationen produceres af klienten Valg af informationen kontrolleres af værten (server) Transmission. Radio, aviser, tekst­TV. Push-teknologi, spam Registrering. tilmeldelse til nyhedsgrupper, Selvangivelser, etc. Valg af informationen kontrolleres af klienten Konsultation. WWW. Konversation. Almindelige samtaler. . Chat etc.

31 Hvad er html? Hyper Text Mark-up Language.
Standard for de dokumenter WWW består af Består essentielt af en række tekstuelle ’tags’, <xxx> …</xxx> der beskriver hvordan ’…’ skal renderes grafisk og hvordan browseren i øvrigt skal reagerer på tekststumpen. Fra Kursussiden: <h1>Information</h1> <p> Her kan findes mine kontaktinformationer og desuden generelle informationer om kurset. </p> <h2>Kontakt</h2> <table cellpadding="0px" cellspacing="0px" class="linktabelmargin"> <tr> <td valign="top" width="150px"> <p class="nomargin"> <b>TLF:</b> </p> </td> …. Kildekode for hele siden CSS:

32 Øvelse 5 Lav et program der kan udskrive en tabel fra en ”database” som en html-tabel

33 Egenskaber ved WWW? Det bygger på en grundlæggende rekursiv proces hvor output anvendes som nyt input Klienter og servere kan ikke direkte påvirke hinanden. De bestemmer selv hvordan de vil reagerer på kommunikationen Det er ikke styret af nogen overgribende intentionalitet, Det kan selv medvirke til sin egen reproduktion, udvikling og reparation, Det er dynamisk, og udvikler sig hele tiden. Selv-reference og selv-observation er uundværlige for at denne dynamik ikke opløser sig selv.

34 Grundlæggende rekursiv proces.
HTML  URL  HTML … Klient og server får ikke lov direkte at påvirke hinanden. De bestemmer selv hvordan den modtagne kommunikation skal fortolkes

35 Det er ikke styret af nogen overgribende intentionalitet
W3C Process (The World Wide Web Consortium) ”The Consortium attempts to find common specifications for the Web so that through dramatic and rapid evolution, many organizations can work in their own fields to exploit and build on top of the global information space which is the web. The technologies involved in the web are changing very rapidly, and so the Consortium must have both efficiency and flexibility in its process, to be able to respond to the needs of the community in a timely manner. At the same time, it must be clear that the Consortium is neutral forum, and no member has a priori a greater say than another. ”

36 Det kan selv medvirke til sin egen reproduktion, udvikling og reparation
Downloads Udvikling: Man kan ved hjælp af nettet downloade de nye programmer der ændrer nettet Reparation: Man kan abonnere på patches og rettelser, så de kommer automatisk Reparation: Når en klient mangler en ressource for at kunne fortolke en side, kan den automatisk downloades fra nettet. Ofte henviser html-dokumentet til den relevante down-load side

37 Specifikationen af HTTP er åben for forandringer
Specifikationen af HTTP giver mulighed for fluktuationer for at sikre at protokollen hele tiden vil udvikle sig. Method = "OPTIONS"|"GET"|"HEAD"|"POST"|"PUT"|"DELETE" | "TRACE" |extension-method Extension-method, angiver at nye metoder kan komme til. Responsens statuskode Status-Code = "100" ; Continue| "101" ; Switching Protocols | "200" ; OK [...]| "503"; Service Unavailable | "504" ; Gateway Time-out | "505" ; HTTP Version not supported | extension-code

38 Selv-reference og selv-observation
Selv-reference og selv-observation er uundværlige for at denne dynamik ikke opløser sig selv Søgemaskiner producerer hele tiden opdaterede beskrivelser af nettet selv ved hjælp af nettet Alle HTML sider og HTTP protokoller skal angive hvilken version de selv er (dokument og browser) Søgemaskiner fører statistik over de mest populære sider og viser dem først

39 Eksempel Når I skal sætte Python til at lave dynamiske hjemmesider skal I sørge for to selv-referencer: Hvad er det for en slags dokument? print ’’’Content-type: text/html’’’ Hvilken version af HTML og hvilket sprog? def printOverskrift(titel): print ''' <?xml version="1.0" encoding="iso "?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

40 Netværk Python moduler understøtter netværkskommunikation Moduler
httplib, ftplib, poplib, smtplib

41 httplib import httplib
python = httplib.HTTPConnection('www.python.org') python.request("GET", '/index.html') res = python.getresponse() print res.status, res.reason 200 OK page = res.read() python.close() print page <a href="http://www.python.org/moin/LocalUserGroups">User Groups</a> Kør httplib-eksempel

42 MySQLdb connection = MySQLdb.connect(host = HOST, db=DATABASE, user=USER, passwd=PASSWD) Etablerer en forbindelse cursor = connection.cursor() Cursor er en pegepind til databasen cursor.execute(SQLordre) #SELECT * FROM … Udfører SQLordren result = cursor.fetchall() Fisker resultatet af ordren frem connection.close() Lukker forbindelsen

43 Modulet database Sørger for overgangen mellem python-verdnen og sql-verdnen I: SQL I: Python O: SQL-kommando Select…from…where… R: findRecords('Child',['cpr','firstname','lastname'],{'cpr':' '}) O: Python datastrukturer (lister og dictionaries)

44 Modulet database 2 print 'find all records in table Child'
aRow = db.findRecords('Child',[]) print aRow >>>output<<< find all records in table Child [[' ', 'Jeppe Boegh', 'Andersen', 'Thorsgade 20', '8410', 'dreng', '', ' ', 'Baltica', ' ', ' ', ' '], [' ', 'Lotte Boegh', 'Andersen', 'Thorsgade 20', '8410', 'pige', '', ' ', 'Baltica', ' ', ' ', ' '], [' ', 'Stine', 'Jacobsen ', 'Thorsgade 20', '8410', 'pige', '', ' ', 'baltica', '', ' ', ' ']]

45 Modulet database 3 print 'fetch a row from table Child with cpr = ' aRow = findRecords('Child',['cpr','firstname','lastname'],{'cpr':' '}) print aRow fetch a row from table Child with cpr = [[' ', 'Jeppe Boegh', 'Andersen']]

46 Modulet database 4 print 'change the first name to Jeppe in record where cpr = ' updateRecords('Child', {'firstname':'Jeppe'}, {'cpr':' '}) aRow = findRecords('Child',['cpr','firstname','lastname'],{'cpr':' '}) print aRow change the first name to Jeppe in record where cpr = [[' ', 'Jeppe', 'Andersen']]

47 Modulet database 5 Som beskrevet er det et modul så i skal altså huske at importere det, som vi snakkede om i sidste uge, inden i kan bruge det. import database as db Læg det i den samme mappe som jeres egen kode

48 Operativsystemer Historie og opbygning

49 Operativsystemets rolle
Operativsystemer (OS) foretager ressourcehåndtering Diskplads, hukommelse, CPU-tid Eksterne ressourcer Netværk, printere, diskdrev osv. Brugerhåndtering Rettigheder, filadgang, prioritering,programafvikling Rettigheder på web-serveren: husk kryds i execute når I ftp’er jeres Python filer!

50 OS historie Første maskiner havde intet OS ENIAC, EDSAC
Jobbene (programmerne) kørte “direkte på metallet” Programmering ved omkonfigurering af kabler

51 Jobkontrol (JCL) Reservationer af timeslots Computeroperatører
... maskinerne stod stille eller jobs måtte afbrydes Computeroperatører ... aflevere hulkort eller papirstrimmel til operatør, modtage udprint med resultat tilbage Batch jobs Automatisk igangsætning af jobs Skrive program Gentag: aflevere program Vente et par dage Rette fejl

52 Time sharing Compatible Time Sharing System, 1961 Multics, 1968
Mainframe med tilsluttede “dumme terminaler” (Client/Server) Det var den måde man arbejdede i 70’erne Første terminaler kom til Århus i

53 Microsoft Udviklede OS til personlig IBM’s nye personlige computer
DOS (1981) Disk Operating System Enkeltbrugersystem Forsvandt først i Windows XP

54 Windows udvikling Grafisk som forskel til DOS
To forskellige kerner indtil xp.

55 Operativsystemers struktur
Software Application:specifikke opgaver Spreadsheets,tekstbehandling Databaser, spil System: generelle opgaver Operating system Utility: supplering til OS: Diskformattering, defragmentering, audio, cd-brænding Kernel:funktionalitet File, Memory mamager Device drivers (lydkort, grafikkort) Shell: brugerinteraktion CMD, Windows

56 Ressourcer Hukommelse Diskplads CPU tid Fysisk, virtuel
“swapping/paging” Diskplads CPU tid prioritering

57 Processer, tråde Et program repræsenterer mulige processer
Procestilstand = datatilstand plus program pointer En proces har adskilt datatilstand og programpointer fra andre processer En proces får et tidsrum på CPU’en Eks. 5 ms - “timeslicing” Tråde deler data og hukommelse (pseudo-)Parallel afvikling af kode Python understøtter både processer og tråde

58 Øvelse 6 Brug de funktioner i lavede i opgave 5 og udvid jeres program så det nu rent faktisk henter dataene fra den database i lavede i opgave 2 Husk af downloade:


Download ppt "Introduktion til programmering"

Lignende præsentationer


Annoncer fra Google