in Windows Κυριάκος Ιωάννου Ιάκωβος Πιθαράς Δρ. Δημήτρης Ζεϊναλιπούρ Δρ. Χρυσόστομος Χρυσοστόμου
|
|
- Στυλιανός Καζαντζής
- 6 χρόνια πριν
- Προβολές:
Transcript
1 in Windows Κυριάκος Ιωάννου Ιάκωβος Πιθαράς Δρ. Δημήτρης Ζεϊναλιπούρ Δρ. Χρυσόστομος Χρυσοστόμου
2 Διεργασίες στο λειτουργικό σύστημα Windows : Διεργασία Νήμα
3 Για να δούμε την ταυτότητα της παρούσας διεργασίας καλούμε τη συνάρτηση DWORD WINAPI GetCurrentProcessId() #include <stdio.h> #include <stdlib.h> #include <Windows.h> int main(int argc, char *argv[]) { printf("my id is : %d \n",getcurrentprocessid()); system("pause"); return 0; }
4 Για να δημιουργήσουμε νέα διεργασία στα Windows υπάρχουν αρκετοί τρόποι. Η βασικότερη συνάρτηση είναι η CreateProcess. BOOL CreateProcess ( LPCTSTR lpapplicationname, LPTSTR lpcommandline, LPSECURITY_ATTRIBUTES lpsaprocess, LPSECURITY_ATTRIBUTES lpsathread, BOOL binherithandles, DWORD dwcreationflags, LPVOID lpenvironment, LPCTSTR lpcurdir, LPSTARTUPINFO lpstartupinfo, LPPROCESS_INFORMATION lpprocinfo)
5 /* Chapter 6. grepmp. */ /* Multiple process version of grep command. */ #include "EvryThng.h" int _tmain (DWORD argc, LPTSTR argv []) /* Create a separate process to search each file on the command line. Each process is given a temporary file, in the current directory, to receive the results. */ { HANDLE htempfile; SECURITY_ATTRIBUTES StdOutSA = /* SA for inheritable handle. */ {sizeof (SECURITY_ATTRIBUTES), NULL, TRUE}; TCHAR CommandLine [MAX_PATH + 100]; STARTUPINFO StartUpSearch, StartUp; PROCESS_INFORMATION ProcessInfo; DWORD iproc, ExCode; HANDLE *hproc; /* Pointer to an array of proc handles. */ typedef struct {TCHAR TempFile [MAX_PATH];} PROCFILE; PROCFILE *ProcFile; /* Pointer to array of temp file names. */ GetStartupInfo (&StartUpSearch); GetStartupInfo (&StartUp); ProcFile = malloc ((argc - 2) * sizeof (PROCFILE)); hproc = malloc ((argc - 2) * sizeof (HANDLE)); /* Create a separate "grep" process for each file. */ for (iproc = 0; iproc < argc - 2; iproc++) { _stprintf (CommandLine, _T ("%s%s %s"), _T ("grep "), argv [1], argv [iproc + 2]); GetTempFileName (_T ("."), _T ("gtm"), 0, ProcFile [iproc].tempfile); /* For search results. */ htempfile = /* This handle is inheritable */ CreateFile (ProcFile [iproc].tempfile, GENERIC_WRITE, FILE_SHARE_READ FILE_SHARE_WRITE, &StdOutSA, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); StartUpSearch.dwFlags = STARTF_USESTDHANDLES; StartUpSearch.hStdOutput = htempfile; StartUpSearch.hStdError = htempfile; StartUpSearch.hStdInput = GetStdHandle (STD_INPUT_HANDLE); /* Create a process to execute the command line. */ CreateProcess (NULL, CommandLine, NULL, NULL, TRUE, 0, NULL, NULL, &StartUpSearch, &ProcessInfo); /* Close unwanted handles. */ CloseHandle (htempfile); CloseHandle (ProcessInfo.hThread); hproc [iproc] = ProcessInfo.hProcess; } /* Processes are all running. Wait for them to complete. */ for (iproc = 0; iproc < argc - 2; iproc += MAXIMUM_WAIT_OBJECTS) WaitForMultipleObjects ( /* Allows a large # of processes */ min (MAXIMUM_WAIT_OBJECTS, argc iproc), &hproc [iproc], TRUE, INFINITE); /* Result files sent to std output using "cat." */ for (iproc = 0; iproc < argc - 2; iproc++) { if (GetExitCodeProcess(hProc [iproc], &ExCode) && ExCode==0) { /* Pattern was detected -- List results. */ if (argc > 3) _tprintf (_T ("%s:\n"), argv [iproc + 2]); fflush (stdout); /* Multiple processes use stdout. */ _stprintf (CommandLine, _T ("%s%s"), _T ("cat "), ProcFile [iproc].tempfile); CreateProcess (NULL, CommandLine, NULL, NULL, TRUE, 0, NULL, NULL, &StartUp, &ProcessInfo); WaitForSingleObject (ProcessInfo.hProcess, INFINITE); CloseHandle (ProcessInfo.hProcess); CloseHandle (ProcessInfo.hThread); } CloseHandle (hproc [iproc]); DeleteFile (ProcFile [iproc].tempfile); } free (ProcFile); free (hproc); return 0; }
6
7 Η διεργασία παιδί μπορεί να κληρονομήσει αρκετές ιδιότητες και πόρους από τον πατέρα της αλλά και να εμποδιστεί από το να τις κληρονομήσει. Γενικά μπορεί να κληρονομήσει τα ακόλουθα: Ανοικτά χειριστήρια που επιστρέφονται από τη συνάρτηση CreateFile. Αυτά περιλαμβάνουν χειριστήρια σε αρχεία, input buffers κονσόλας, buffers οθόνης της κονσόλας, named pipes, serial communication devices και mailslots. Ανοικτά χειριστήρια σε διεργασίες, νήματα, mutex, event, semaphore, named-pipe, anonymous-pipe και file-mapping αντικείμενα. Μεταβλητές περιβάλλοντος. Τον τρέχων κατάλογο. Την κονσόλα, εκτός εάν η διεργασία αποσυνδέεται ή εάν μία νέα κονσόλα δημιουργείται. Η διεργασία παιδί, μπορεί επίσης να κληρονομήσει τα σταθερά χειριστήρια του πατέρα της, όπως επίσης και να έχει πρόσβαση στο input buffer και στο active screen buffer. Το error mode, όπως ορίζεται από τη συνάρτηση SetErrorMode. Το process affinity mask ( συσχετισμός νήματος με επεξεργαστή σε multiprocessor συστήματα). Το συσχετισμό με ένα job.
8 Η διεργασία δεν μπορεί να κληρονομήσει τα ακόλουθα: Την κλάση προτεραιότητας. Χειριστήρια που επιστρέφονται από τις συναρτήσεις LocalAlloc, GlobalAlloc, HeapCreate και HeapAlloc. Ψευδοχειριστήρια, όπως τα χειριστήρια που επιστρέφονται από τις συναρτήσεις GetCurrentProcess ή GetCurrentThread. Τα χειριστήρια αυτά ισχύουν μόνο για την καλούσα διεργασία. Χειριστήρια σε DLL module που επιστρέφονται από την συνάρτηση LoadLibrary. Χειριστήρια σε GDI ή USER, όπως HBITMAP ή HMENU.
9 Η διεργασία πατέρας χρησιμοποιεί τις διεργασίες WaitForMultipleObjects και WaitForSingleObject, για να περιμένει τις διεργασίες παιδιά να τερματίσουν πριν να συνεχίσει η ίδια. DWORD WINAPI WaitForMultipleObjects( DWORD ncount, /*αριθμός διεργασιών που περιμένει*/ const HANDLE* lphandles, /*χειριστήρια στις διεργασίες*/ BOOL bwaitall, DWORD dwmilliseconds /*χρόνος αναμονής των διεργασιών*/); Επιστρέφει τον κωδικό του event που προκάλεσε τον τερματισμό της συγκεκριμένη διεργασίας DWORD WINAPI WaitForSingleObject( HANDLE hhandle, /*χειριστήριο στη διεργασία*/ DWORD dwmilliseconds ); Επιστρέφει τον κωδικό του event που προκάλεσε τον τερματισμό της συγκεκριμένης διεργασίας
10 Όταν τερματίζεται μια διεργασία προκαλούνται τα εξής: Όλα τα εναπομείναντα νήματα σημειώνονται για τερματισμό. Ελευθερώνονται όλοι οι πόροι που δεσμεύτηκαν από τη διεργασία. Κλείνονται όλα τα αντικείμενα του πυρήνα. Ο κωδικός της διεργασίας αφαιρείται από τη μνήμη. Γράφεται ο κωδικός εξόδου της διεργασίας. Σηματοδοτείται το αντικείμενο της διεργασίας. Η συνάρτηση GetExitCodeProcess επιστρέφει την κατάσταση τερματισμού της διεργασίας. Δεν τερματίζονται διεργασίες που δημιουργήθηκαν από την διεργασία που τερματίστηκε. Μια διεργασία τερματίζεται όταν: Ένα νήμα της διεργασίας καλέσει την συνάρτηση ExitProcess Τερματιστεί το τελευταίο νήμα της διεργασίας. Οποιοδήποτε νήμα καλέσει την TerminateProcess με χειριστήριο στη διεργασία. Για διεργασίες κονσόλας,ο default χειριστής ελέγχου κονσόλας καλεί την ExitProcess όταν η κονσόλα πάρει το CTRL+C or CTRL+BREAK. Ο χρήστης κλείσει το σύστημα ή αποσυνδεθεί.
11 Κάθε διεργασία έχει ένα block περιβάλλοντος, το οποίο περιέχει ένα σετ από μεταβλητές περιβάλλοντος καθώς και τις τιμές τους. Μια διεργασία παιδί, κληρονομεί,εξ ορισμού, τις μεταβλητές περιβάλλοντος του πατέρα της. Παρόλα αυτά είναι δυνατό, να οριστεί νέο περιβάλλον για τη διεργασία παιδί, με το να δημιουργηθεί νέο block περιβάλλοντος και να περαστεί ένας δείκτης σε αυτό, σαν παράμετρος της συνάρτησης CreareProcess.
12 Οι μεταβλητές περιβάλλοντος, μέσα στο μπλόκ περιβάλλοντος, έχουν την ακόλουθη μορφή: Var1=Value1\0 Var2=Value2\0 Var3=Value3\0... VarN=ValueN\0\0
13 Με τη συνάρτηση LPTCH WINAPI GetEnvironmentStrings(void); επιστρέφεται ένας δείκτης στο μπλόκ περιβάλλοντος της καλούσας διεργασίας που επιτρέπει μόνο ανάγνωση στις μεταβλητές. Με τη συνάρτηση BOOL WINAPI SetEnvironmentVariable( LPCTSTR lpname, LPCTSTR lpvalue ); επιτρέπεται η αλλαγή των μεταβλητών.
14 IPC είναι το ακρωνύμιο της φράσης Inter- Process Communication. Βασίζεται κυρίως στους μηχανισμούς και τεχνικές της διαδιεργασιακής επικοινωνίας. Επίσης μπορούμε να το ορίσουμε σαν την ικανότητα που έχει ένα λειτουργικό σύστημα έτσι ώστε να μπορεί μια διεργασία να επικοινωνίση με μια άλλη διεργασία. Η διεγργασία μπορεί να είναι στον ίδιο υπολογιστή ή μπορεί να είναι συνδεδεμένοι στο δίκτυο.
15 Βασικοί μηχανισμοί για Windows : Shared Memory Pipes WinSock Mailslot OLE Για την λειτουργία των IPC χρησιμοποιούνται κάποιοι μηχανισμοί συγχρονισμού : Mutex Semaphore Events
16 HANDLE WINAPI CreateEvent( HANDLE WINAPI CreateMutex( LPSECURITY_ATTRIBUTES lpeventattributes, BOOL bmanualreset, BOOL binitialstate, LPCTSTR lpname ); LPSECURITY_ATTRIBUTES lpmutexattributes, BOOL binitialowner, LPCTSTR lpname ); HANDLE WINAPI CreateSemaphore( LPSECURITY_ATTRIBUTES lpsemaphoreattributes, LONG linitialcount, LONG lmaximumcount, LPCTSTR lpname );
17 Γνωστό και σαν File Mapping Επιτρέπει στην επικοινωνία διεργασιών χρησιμοποιώντας το περιεχόμενο ενός κειμένου στην μνήμη. Η διεργασία μπορεί να χρησιμοποιήσει ένα απλό διαχειριστή αρχείων και να τροποποιήσει το περιεχόμενο ενός αρχείου. Δύο ή περισσότερες διεργασίες με το ίδιο file mapping διαβάζουν από το κοινό αρχείο. Μπορεί να χρησιμοποιηθεί απο διεργασίες στον ίδιο υπολογιστή μόνο. Είναι πολύ εύκολη η εγκαθίδρυση file mapping
18 Οι κύριες εντολές απο το Win32 API που μπορούμε να διαχειριστούμε το Shared Memory είναι: CreateFileMapping() MapViewOfFile() UnMapViewOfFile() CloseHandle() g_hsharedmemory = CreateFileMapping( HANDLE hfile, // handle to file LPSECURITY_ATTRIBUTES, // security attribute PAGE_READWRITE, // read/write access Ο, // max. object size MAX_SH_MEM_SIZE, // buffer size g_szsharememoryname); // name of mapping object g_pbuffer = (LPTSTR) MapViewOfFile( g_hsharedmemory, // handle to map object FILE_MAP_ALL_ACCESS, // read/write perm Ο, Ο, MAX_SH_MEM_SIZE);
19 1. Πρώτα επιλέγουμε read from the shared memory 2. Ο reader περιμένει 3. Στο άλλο παράθυρο κάνουμε write to the shared memory 4. Γράφουμε στην κοινή μνήμη. 5. Ο reader διαβάζει από την κοινή μνήμη
20 Τα pipes λειτουργούν σαν FIFO Υπάρχουν δύο ειδών Pipes Anonymous Pipes και Named Pipes Ένα anonymous pipe είναι : τοπικό, δεν μπορεί να επικοινωνίση με το δίκτυο δεν έχει όνομα είναι μονής κατεύθυνσης χρησιμοποιείται για μεταφορά δεδομένων από μια διεργασία πατέρας στο παιδί της
21 Mπορούν να είναι duplex Mπορούν να χρησιμοποιηθούν απο διεργασίες στον ίδιο υπολογιστή αλλά και στο δίκτυο. Διαχείρηση σαν κανονικά αρχεία Χρησιμοποιούνται κυρίως σαν client-server επικοινωνία Δεν είναι special αρχεία όπως τα UNIX
22 Dim bytecount, i, res, cbncount As Integer For i = 0 To BUFFSIZE - 1 'Fill an array of numbers Buffer(i) = i Mod 256 Next i 'Wait for a connection, block until a client connects Label1.Text = "Waiting for client connections" Me.Refresh() Do res = ConnectNamedPipe(hPipe, 0) 'Read the data sent by the client over the pipe cbncount = 4 res = ReadFile(hPipe, bytecount, Len(byteCount), cbncount, 0) If bytecount > BUFFSIZE Then 'Client requested for bytecount bytes bytecount = BUFFSIZE 'but only send up to bytes End If 'Write the number of bytes requested by the client res = WriteFile(hPipe, Buffer, bytecount, cbncount, 0) res = FlushFileBuffers(hPipe) 'Disconnect the named pipe. res = DisconnectNamedPipe(hPipe) 'Loop until the client makes no more requests for data. Loop Until bytecount = 0 Label1 Text = "Read or Write completed" Server
23 Dim i, res, cbread,numbytes As Integer Dim barray() As Byte Dim temp As String numbytes = CInt(TextBox1.Text) If numbytes < 0 Then MessageBox.Show("Value must be at least 0.", MsgBoxStyle.OKOnly) Exit Sub End If If numbytes = 0 Then Label1.Visible = True Label1.Text = "The connection to the server is disconnected." Button1.Visible = False TextBox1.Visible = False TextBox2.Visible = False End If If numbytes > BUFFSIZE Then numbytes = BUFFSIZE End If Client ReDim barray(numbytes) 'Create the return buffer 'Call the CallNamedPipe function to do the transactions res = CallNamedPipe(pipeName, numbytes, Len(numBytes), barray(0), numbytes, cbread, 30000) 'Wait up to 30 seconds for a response 'Format the data received, and then display the data in the text box If res > 0 Then temp = Format(bArray(0), " 000") For i = 1 To cbread - 1 If (i Mod 16) = 0 Then temp = temp & vbcrlf temp = temp & " " & Format(bArray(i), "000") Next i TextBox2.Text = temp Else MessageBox.Show("Error number " & Err.LastDllError & _ "while trying to call the CallNamedPipe function.", MsgBoxStyle.OKOnly)
24 1. Ένα πρόγραμμα χρησιμοποιώντας την συνάρτηση ConnectNamedPipe δημιουργά named pipe. 2. Ένωση client προγραμματος με server χρησιμοποιώντας την CallNamedPipe function. 3. Εκτέλεση της ReadFile ή τηςwritefile function για την επικοινωνία με την pipe. 4. Καλούμε την DisconnectNamedPipe γιανατερματίσουμε την επικοινωνία. 5. Καλούμε την CloseHandle στην συνδεδεμένη named pipe γιανατερματίσουμετηνσύνδεση.
25 Τα Windows Sockets (WinSock) είναι βασισμένα στον τρόπο που είναι υλοποιημένα στα UNIX Χρησιμοποιώντας Windows Sockets μπορείς να επικοινωνίσης με οποιαδήποτε σύστημα στοδίκτυοπουυποστηρίζειwindows Sockets. Είναι το πιο διαδεδομένο πρωτόκολλο διεργασιακής επικοινωνίας. Επίσης μπορεί να χρησιμοποιηθεί στην επικοινωνία με άλλα συστήματα και πλατφόρμες αφου σχεδόν
26 #include <winsock2.h> ListenSocket = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); nportno = atoi(argv[1]); ServerAddress.sin_family = AF_INET; ServerAddress.sin_addr.s_addr = INADDR_ANY; //WinSock will supply address ServerAddress.sin_port = htons(nportno); //comes from commandline bind(listensocket, (struct sockaddr *) &ServerAddress, sizeof(serveraddress)) accept(listensocket, (struct sockaddr *) &ClientAddress, &nclientlength); nbytesrecv = recv(remotesocket, szbuffer, 255, 0 ); send(remotesocket, ACK_MESG_RECV, strlen(ack_mesg_recv), 0); closesocket(remotesocket);
27 #include <winsock2.h> nportno = atoi(argv[2]); Socket = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); Server = gethostbyname(argv[1]); ZeroMemory((char *) &ServerAddress, sizeof(serveraddress)); ServerAddress.sin_family = AF_INET; copymemory((char *)&ServerAddress.sin_addr.s_addr, (char *)Server->h_addr, Server->h_length); ServerAddress.sin_port = htons(nportno); nbytessent = send(socket, szbuffer, strlen(szbuffer), 0); nbytesrecv = recv(socket, szbuffer, 255, 0 ); closesocket(socket);
28 Σε περιβάλλοντα που το δίκτυο LAN είναι πολύ γρήγορο τα Sockets και τα Named Pipes έχουν την ίδια ταχύτητα και απόδοση. Διαφορές στην ταχύτητα όμως παρουσιάζονται σε αργές συνδέσεις όπως dialup και DSL. Στα named pipes για κάθε read που κάνει ένας user στέλνονται named pipes messages πρίν την έναρξη του read. Στα Sockets η μεταφορά δεδομένων έχει λιγότερα overheads και μπορούν να εκμεταλευτούν μηχανισμοί όπως windowing, delayed, acknowledgments απο το TCP/IP. Έτσι έχουμε καλύτερη απόδοση σε αργές συνδέσεις. Σε τελική ανάλυση τα Sockets είναι καλύτερα σε περιβάλλοντα που η ταχύτητα του δικτύου είναι εμπόδιο. Παρόλα αυτα τα named pipes σε γρήγορα δίκτυα είναι καλύτερα αφου προσφέρουν ευκολία χρήσης και πολλά configuration options.
29 Παρέχουν επικοινωνία μονής κατεύθηνσης. Μιά διεργασία που δημιουργά mailslot είναι ο mailslot server Mailslot clients στέλνουν μηνύματα στο mailslot του server Το mailslot αποθηκεύει το μήνυμα μέχρι να διαβαστεί απο τον server
30 Μια διεργασία μπορεί να είναι και server και client Η χρήση του Mailslot είναι πολύ πιο εύκολη από τα pipes ή τα sockets αλλά είναι πιο περιορισμένη. Δεν προσφέρουν επιβεβαίωση ότι τα μηνύματα παραλήφθηκαν εκτός και άν είναι υλοποιημένο απο το πρόγραμμα. Είναι καλή επιλογή όταν θέλεις να κάνεις broadcast ένα μήνυμα σε πολλά process ή χρειάζεσαι κατι απλό και γρήγορο.
31 Η πιο διαδεδομένη χρήση του Mailslot είναι το Messenger Service που υπάρχει στα Windows XP. Το Messenger Service είναι ένας Mailslot server που περιμένει να έρθει ένα μήνυμα. Όταν το μήνυμα φτάσει, εμφανίζεται στην οθόνη.
32 #include <windows.h> #include <stdio.h> HANDLE hslot; LPTSTR lpszslotname= TEXT("\\\\.\\mailslot\\sample_mailslot"); hslot = Creat slot( lpszslotname, 0, // maximum message size MAILSLOT_WAIT_FOREVER, // no time-out for operations (LPSECURITY_ATTRIBUTES) NULL); // default security fresult = WriteFile( hslot, Message, (DWORD) (lstrlen(lpszmessage)+1)*sizeof(tchar), &cbwritten, (LPOVERLAPPED) NULL);
33 #include <windows.h> #include <stdio.h> HANDLE hslot; LPTSTR SlotName = TEXT("\\\\.\\mailslot\\sample_mailslot"); MakeSlot(SlotName); fresult = GetMailslotInfo( hslot, // mailslot handle (LPDWORD) NULL, // no maximum message size &cbmessage, // size of next message &cmessage, // number of messages (LPDWORD) NULL); // no read time-out fresult = ReadFile(hSlot, lpszbuffer, cbmessage, &cbread, &ov); CloseHandle(hEvent);
34 Προσωρινή αποθήκευση δεδομένων Αποθήκευση σε διάφορες μορφές κείμενο, φωτογραφία, γραφική παράσταση, πίνακας Χρησιμοποιήται από όλες σχεδόν τις εφαρμογές Πολύ εύκολος τρόπος ανταλλαγής δεδομένων
35 Τροποποίηση του περιεχομένου μιας διεργασίας χρησιμοποιώντας μια άλλη διεργασία π.χ : Γραφική παράσταση σε αρχείο Word Το OLE προετοιμάζει και επιτρέπει επεξεργασίας της γραφικής παράστασης Χρήση άλλων εφαρμογών διαμέσου άλλων εφαρμογών
36 Papers: Named Pipes, Sockets and other IPC, Mujtaba Khambatti Web:
Το μοντέλο διεργασιών του Win32
Πολυπρογραμματισμός στο Win32 Κεφάλαιο 1 Το μοντέλο διεργασιών του Win32 Τα λειτουργικά συστήματα που υλοποιούν όλο ή τμήμα του μοντέλου του Win32 (αυτή τη στιγμή Windows NT, Windows 95/98) υποστηρίζουν
Διαβάστε περισσότεραΔιαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1
Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις
Διαβάστε περισσότεραHY150a Φροντιστήριο 3 24/11/2017
HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει
Διαβάστε περισσότερα(C) 2010 Pearson Education, Inc. All rights reserved.
Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.
Διαβάστε περισσότεραΕΠΛ 428 Windows Threads and Concurrency. Ορέστης Σπανός Χρίστος Κυριάκου
ΕΠΛ 428 Windows Threads and Concurrency Ορέστης Σπανός Χρίστος Κυριάκου Ιστορική Αναδροµή Windows 3.1 Cooperative Multithreading Η διεργασία είναι που καθορίζει το πότε θα φύγει από το CPU και να ελευθερώσει
Διαβάστε περισσότεραΚατανεμημένα Συστήματα. Javascript LCR example
Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Διαβάστε περισσότεραΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)
Προγραμματισμός συστημάτων UNIX/POSIX Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Επικοινωνία μεταξύ διεργασιών γονέα-παιδιού Κατά κάποιο τρόπο, θα δημιουργήσουμε ένα τύπο
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΕπεξεργασία Αρχείων Κειµένου
Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά
Διαβάστε περισσότεραΠρογραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω
Διαβάστε περισσότεραΝτίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,
Διαβάστε περισσότεραΦροντιςτήριο. Linked-List
Φροντιςτήριο Linked-List 1 Linked List Μια linked list είναι μια ακολουθία από ςυνδεδεμένουσ κόμβουσ Κάθε κόμβοσ περιέχει τουλάχιςτον Μια πληροφορία (ή ένα struct) Δείκτη ςτον επόμενο κόμβο τησ λίςτασ
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή
Διαβάστε περισσότεραΔιάλεξη 18η: Διαχείρηση Αρχείων
Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΑρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)
Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραΠρογραμματισμός με BSD Sockets σε περιβάλλον Linux
Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά
Διαβάστε περισσότεραΔίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Προτάσεις,
Διαβάστε περισσότεραHancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων
Hancock Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος Χ346339 Τ911778 ΕΠΛ 428 Προγραμματισμός Συστημάτων Ιστορική Αναδρομή Δημιουργήθηκε από την εταιρεία ΑΤ&Τ LAB Αφορμή δημιουργίας: Η ανάγκη για καθαρό και αποδοτικό
Διαβάστε περισσότεραΕγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)
Socket *sopen(const int type, const int protocol, const char *host, const char *service) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραΔυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1
Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX
Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί
Διαβάστε περισσότεραΙ Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)
Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Αρχεία Το γενικό πλαίσιο: data stream (ρεύμα δεδομένων). stdin, stdout, stderr data stream ως προς τα δεδομένα βάσει προσπέλασης
Διαβάστε περισσότεραΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 15 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών
Διαβάστε περισσότεραιαδικτυακές Εφαρµογές
ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΙδιοκτησία Αντικειµένου
Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται
Διαβάστε περισσότεραΑγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1
Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):
Διαβάστε περισσότεραΜετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη
Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ FILE SYSTEM >_ ΔΙΚΑΙΩΜΑΤΑ >_ ΔΙΚΑΙΩΜΑΤΑ? >_ ΜΕΤΑΒΟΛΗ ΔΙΚΑΙΩΜΑΤΩΝ +- chmod
Διαβάστε περισσότεραΕισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Διαβάστε περισσότεραΖητήματα Σχεδίασης Λογισμικού Εξυπηρετητή
Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Ταυτόχρονοι και Επαναληπτικοί Εξυπηρετητές Επαναληπτικός εξυπηρετητής: επεξεργάζεται μόνο μία αίτηση τη φορά. Ταυτόχρονος
Διαβάστε περισσότεραΔιάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132
Διαβάστε περισσότερα$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).
Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο
Διαβάστε περισσότεραΛειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών
Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για
Διαβάστε περισσότεραΜετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου
Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1 Μετατροπή χαρακτήρων ASCII σε ακέραιο Ο πιο κάτω κώδικας
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Διαχείριση
Διαβάστε περισσότερα(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)
(Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη
Διαβάστε περισσότεραElectronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται
Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες
Διαβάστε περισσότεραΑρχές Προγραμματισμού
Αρχές Προγραμματισμού https://eclass.upatras.gr/courses/ee806/index.php Βασίλης Παλιουράς paliuras@ece.upatras.gr ΠΕΡΙΣΣΟΤΕΡΑ ΓΙΑ ΑΡΧΕΙΑ 1 int main ( ) { int i; int num; FILE *data ; if ((data = fopen
Διαβάστε περισσότερα1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας
1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Μάθημα: Ρομποτική, Μεταφορά και Έλεγχος Δεδομένων Αντικείμενο : Μεταφορά δεδομένων
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran
Διαβάστε περισσότεραi M-1 1. ij f(i, j) N-1. (pixel) 2. M N (x, y) (x, y ) = 256. R(x, y), G(x, y), B(x, y)
D4 2 2. (pixel) 2 ( ) M N (x, y) (x, y ) ( )f(x, y) j N- i j i f(i, j) M-. ij f(i, j) 8 2 8 = 256, 2 2 f(x, y) 3,, R(x, y), G(x, y), B(x, y) 256 2 2.2 ( ) JPEG (Joint Photographic Experts Group), GIF (Graphics
Διαβάστε περισσότεραΒιβλιοθήκη stdio. Προγραμματισμός II 1
Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής
Διαβάστε περισσότεραΥποδοχείς (Sockets) Προγραμματισμός II 1
Υποδοχείς (Sockets) Προγραμματισμός II 1 lalis@inf.uth.gr Υποδοχείς Ειδικές δομές διαδιεργασιακής επικοινωνίας Προσπελάζονται μέσω περιγραφέων αρχείων μπορεί να χρησιμοποιηθούν οι read, write, close μπορεί
Διαβάστε περισσότεραΕισαγωγή στους Υπολογιστές
Εισαγωγή στους Υπολογιστές Ενότητα #5: Διαγράμματα ροής (Flow Charts), Δομές επανάληψης Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Διαγράμματα ροής (Flow Charts), Δομές επανάληψης
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 10: Στοίβες:Υλοποίηση& Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης - Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις - Εφαρμογή
Διαβάστε περισσότεραιαφάνειες παρουσίασης #6 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης
Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΤΜ PROJECT Άννα Τριανταφύλλου ΑΕΜ : 456 επιβλέπων καθηγητής: Μηνάς Δασυγένης Περιεχόμενα 1. 2. 3.
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 19η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Βασικές διαφορές της C από τη C++. Απλά παραδείγματα προγραμμάτων C.
Διαβάστε περισσότεραΠροηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor
Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο
Διαβάστε περισσότεραΕργαστήριο 9: Αρχεία
Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.
Διαβάστε περισσότεραΠρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής
Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους
Διαβάστε περισσότεραΕργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή
Εισαγωγή Εργαστήριο 2 ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX Συνεχίζουμε την εργαστηριακή μελέτη των Λειτουργικών Συστημάτων εξετάζοντας τις δομές των αρχείων και καταλόγων και τη διαχείρισή τους στο
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΠροσομοίωση BP με το Bizagi Modeler
Προσομοίωση BP με το Bizagi Modeler Α. Τσαλγατίδου - Γ.-Δ. Κάπος Πρόγραμμα Μεταπτυχιακών Σπουδών Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών 2017-2018 BPMN Simulation with Bizagi Modeler: 4 Levels
Διαβάστε περισσότεραΘέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας
Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται
Διαβάστε περισσότεραHY335 4ο Φροντιστήριο
HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX
Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) σήματα (signals) Ανάγκη Ότι είδαμε
Διαβάστε περισσότεραΕργαστήριο 5 fork(), exec(), signals
Εργαστήριο 5 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων
Διαβάστε περισσότεραΠερίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.
Κατανεμημένα Συστήματα Ι 1 Περίληψη Φροντιστηρίου 2 Το Περιβάλλον DAP Φροντιστήριο Ένα παράδειγμα υλοποίησης στο DAP Δευτέρα 14 Νοεμβρίου 2005 Γιάννης Κρομμύδας Το περιβάλλον DAP Τι είναι Το περιβάλλον
Διαβάστε περισσότερα2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ
2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Τι μάθαμε μέχρι τώρα Κάθε πρόγραμμα της c++ περιέχει υποχρεωτικά μια συνάρτηση main() η οποία είναι εκείνη που εκτελείται πρώτη. Κάθε
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΑρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr
ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τύποι αρχείων Ρεύματα Άνοιγμα ρευμάτων Εγγραφή και ανάγνωση δεδομένων προς/από ένα ρεύμα Διαχείριση και κλείσιμο ρευμάτων Παραδείγματα
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:10 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ
ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:
Διαβάστε περισσότερα14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης
14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότερα17TimeThis.h function returns reference pointer to same object { return *this; }
Προαπαιτούµενη Κάθε οµάδα θα πρέπει να εµπλουτίσει το ίδιο πρόγραµµα, που έκανε την προηγούµενη φορά, προσθέτοντας στην κλάση του έναν ή περισσότερους υπερφορτωµένους τελεστές (όπως , ++, +,-,+=..)
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου
Διαβάστε περισσότερα(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
(Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα
Διαβάστε περισσότεραSMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)
SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M7 Δομές δεδομένων: Πίνακες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Έννοια της
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
Διαβάστε περισσότεραΔιάλεξη 9: Δυναμική Δέσμευση Μνήμης
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 9: Δυναμική Δέσμευση Μνήμης (Κεφάλαιο 17.1-17.4, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 9-1
Διαβάστε περισσότεραΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Μετατροπή ASCII σε Δεκαδικό
Διαβάστε περισσότεραC: Από τη Θεωρία στην Εφαρμογή
Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1
Διαβάστε περισσότεραΕπιτεύγµατα των Λ.Σ.
Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος
Διαβάστε περισσότεραΠροηγμένοι Μικροεπεξεργαστές. Εργαστήριο 5 - Editor
Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 5 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο
Διαβάστε περισσότερα«Εγχειρίδιο Προγράμματος Hope (version 2)»
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ «Εγχειρίδιο Προγράμματος Hope (version 2)» Μαργαρίτα Κουτσουπιά Μηχ. Η/Υ και Πληροφορικής ΠΑΤΡΑ 2009 Το Hope αποτελεί έναν Παράλληλο
Διαβάστε περισσότεραΕργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος
Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Σχόλια: - - This is a single line comment - - There is no alternative way to write multi-line comments Αναγνωριστικά: Τα αναγνωριστικά
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Διαβάστε περισσότεραΕνδεικτική περιγραφή μαθήματος
ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.
Διαβάστε περισσότερα