sistemsko programiranje n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Sistemsko programiranje PowerPoint Presentation
Download Presentation
Sistemsko programiranje

Loading in 2 Seconds...

play fullscreen
1 / 14

Sistemsko programiranje - PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on

Sistemsko programiranje. I. poglavlje Uvod. WINDOWS NT kao familija operacijskih sustava. Windows 32-bitni operacijski sustav ima sve potrebne elemente za osobnu, a također i upotrebu u poduzećima. 64-bit sustavi također dolaze Osnovni elementi uključuju:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Sistemsko programiranje' - temira


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
sistemsko programiranje

Sistemsko programiranje

I. poglavlje

Uvod

slide2

WINDOWS NT kao familija operacijskih sustava

  • Windows 32-bitni operacijski sustav ima sve potrebne elemente za osobnu, a također i upotrebu u poduzećima.
  • 64-bit sustavi također dolaze
  • Osnovni elementi uključuju:
    • Memorija: velika, linearna, adresni prostor za virtualnu memoriju
    • Sustavi spremanja datoteka (File systems), konzolni rad, i ostali I/O
    • Multitasking: procesi i niti
    • Komunikacija i sinkoronizacija
      • Zasebni i umreženi sustavi
    • Sigurnost
slide3

WINDOWS - verzije

  • Windows XP (Home, Professional) - pojedinačni korisnici
  • Windows Server 2003 - poduzeća, serveri (Novi, Win64 standard nastaje baš iz ove implementacije)
  • Windows 2000 (Professional i neke druge server verzije) - više se ne prodaje, ali na njemu su nastali XP i buduće verzije.
  • Windows Embedded, Windows CE, Tablet PC, Windows Mobile (palmtop, ugrađeni procesori, mobiteli itd.) - imaju veliki podskup osnovnih elemenata Windowsa
  • Prijašnje (već napuštene) verzije: Windows NT 3.5, 3.5.1, 4.0 datiraju još od 1993. godine. Windows 95, Windows 98, Windows ME (sve zajedno zvat ćemo Windows 9x) - osobna desktop i laptop računala, nemamo sigurnosne elemente kao NT
slide4

Windows API

  • “Windows” je u biti 32-bitni API koji je korišten u:
    • Windows 9X (95, 98, Me)
    • Windows NT
    • Windows CE (palmtop, ugrađeni sustavi, itd.)
    • Win64 je vrlo sličan na nivou source-a

* Podržano na Windows 2003 i Itanium familiji procesora

    • Windows naredbe skoro uvijek odgovaraju Win64
  • Postoji nekoliko velikih podjela, koje primjerice uključuju:
    • Rukovanje prozorima (Windows Management)
    • GDI (Graphics Device Interface)
    • Servisi OS-a (System Services)
    • Multimedija
    • RPC (Remote Procedure Calls)
slide5

WINDOWS 9x, NT

  • Windows 9X radi samo na Intel x86 arhitekturi
  • Samo NTpodržava SMP (symmetric multiprocessing)
  • Windows NT koristi UNICODE internacionalni skup znakova
  • Windows NT ima potpuno zaštićenu jezgru (kernel)
  • Windows NT podržava NTFS, robustni file system
  • Windows 9X i CE ne podržavaju jako puno resursa
    • Otvorenih datoteka, procesa, itd.
  • Mnoge funkcije Windows 9X imaju ograničene implementacije

Općenito, Windows programi su portabilni između različitih platformi na nivou soruce-a, a u većini i na binarnom nivou.

slide6

WindowsProgram

Aplikacije

Windows

Subsystem

Protected

Subsystems

NTExecutive

Systems Services

Process Manager

I/O Manager

Virtual Memory Manager

KERNEL

HAL: Hardware Abstraction

HARDWARE

slide7

Osnovni principi WINDOWS-a 1/2

  • Skoro svaki resurs je “object” identificiran i adresiran preko rukovatelja (“handle”) tipa HANDLE
  • Objektima jezgre (Kernel-a) manipulira se pomoću WindowsAPI funkcija
  • Tip podataka HANDLE uključuje objekte:
    • datoteke pipes
    • procese mapiranje memorije
    • niti događaji (events), semafori
  • Windows je bogat i fleksibilan sustav
    • Više funkcija koje obavljaju iste ili slične poslove
    • Svaka funkcija ima brojne parametre i zastavice
slide8

Osnovni principi WINDOWS-a 2/2

  • Windows nit (thread) je osnovna jedinica izvršavanja, osnovnija od procesa
    • Proces može imati jednu ili više niti
    • Svaki proces ima svoj kod i svoj adresni prostor
    • Niti dijele adresni prostor procesa
    • Niti su “laganije” i učinkovitije od procesa
    • Koriste se za servere, asinkroni I/O, ...
slide9

Konvencije oko imenovanja kod Windows-a

  • Duga i opisna imena
    • WaitForSingleObjectWaitForMultipleObjects
  • Preddefinirani opisni tipovi podataka uvijek velikim slovima
    • BOOL, DWORD, LPDWORD, ...
  • Kod preddefiniranih tipova izbjegava se operator *:
    • LPTSTR (definira TCHAR *) i
    • LPCTSTR (definira const TCHAR *)
  • Imena varijabli kod API-ja koriste “Hungarian”-ovu notaciju - mi ćemo često izbjegavati ovu konvenciju
    • lpFileName — long pointer [na string koji u C-stilu završava nulom]
slide10

Konvencije kod programiranja za Windows

  • <windows.h> se uvijek uključuje
  • Svi objekti identificirani su pomoću varijable tipa HANDLE
    • CloseHandle funkcija se primjenjuje na skoro sve objekte
  • Simboličke konstante i zastavice koje objašnjavaju njihovo značenje
    • INVALID_HANDLE_VALUE i GENERIC_READ
  • ReadFile, WriteFile, i mnoge druge Windows funkcije vraćaju Boolean vrijednosti (TRUE/FALSE)
  • Kodovi sistemskih greški se dobivaju pomoću GetLastError ()
  • C biblioteka je uvijek dostupna
    • Ali se s njome ne može u potpunosti iskoristiti Windows
slide11

Primjer: Windows FILE COPY (1/3)

  • /* Basic cp file copy program */
  • /* cp file1 file2: Copy file1 to file2 */
  • #include <windows.h> /* Always required for Windows */
  • #include <stdio.h>
  • #define BUF_SIZE 256 /* Increase for faster copy */
  • int main (int argc, LPTSTR argv [])
  • {
  • HANDLE hIn, hOut; /* Input and output handles */
  • DWORD nIn, nOut; /* Number bytes transferred */
  • CHAR Buffer [BUF_SIZE];
  • if (argc != 3) {
  • printf ("Usage: cp file1 file2\n");
  • return 1;
  • }
slide12

Primjer: Windows FILE COPY (2/3)

  • /* Create handles for reading and writing. Many */
  • /* default values are used */
  • hIn = CreateFile (argv [1], GENERIC_READ, 0, NULL,
  • OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  • if (hIn == INVALID_HANDLE_VALUE) {
  • printf ("Cannot open input file\n");
  • return 2;
  • }
  • hOut = CreateFile (argv [2], GENERIC_WRITE, 0, NULL,
  • CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  • if (hOut == INVALID_HANDLE_VALUE) {
  • printf ("Cannot open output file\n");
  • return 3;
  • }
slide13

Primjer: Windows FILE COPY (3/3)

  • /* Input and output file handles are open. */
  • /* Copy file. Note end-of-file detection */
  • while (ReadFile (hIn, Buffer, BUF_SIZE,
  • &nIn, NULL) && nIn > 0)
  • WriteFile (hOut, Buffer, nIn, &nOut, NULL);
  • /* Deallocate resources, such as open handles */
  • CloseHandle (hIn); CloseHandle (hOut);
  • return 0;
  • }
slide14

U korak s Win64

  • Ciljevi:
    • da Win32 binarne datoteke rade u 64-bitnom okruženju
    • Source kod se može re-kompajlirati za 64-bitno okruženje
  • Oprez:
    • Ne smije se uzeti da su cijelobrojni podaci i pokazivači iste duljine
      • Win64 uvodi 64-bitne pokazivače (pointere)
  • Novi tipovi podataka
    • DWORD32, DWORD64
    • POINTER_32, POINTER_64
    • LONG32, LONG64