
    

    <?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://ocw.cs.pub.ro/courses/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://ocw.cs.pub.ro/courses/feed.php">
        <title>CS Open CourseWare so:laboratoare:resurse</title>
        <description></description>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <image rdf:resource="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-05-09T16:07:15+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/c_tips?rev=1465138311&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/die?rev=1520026601&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/gdb?rev=1426712105&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/injections?rev=1457519682&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/ipc?rev=1650304986&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/online?rev=1583942999&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/oprofile?rev=1361257813&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/recapitulare?rev=1647273777&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/threaduri_extra?rev=1431968437&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/vs_tips?rev=1364287802&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/windows-laborator?rev=1614457699&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/windows-video?rev=1361258805&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico">
        <title>CS Open CourseWare</title>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <url>http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/c_tips?rev=1465138311&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-05T17:51:51+03:00</dc:date>
        <title>C/SO Tips</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/c_tips?rev=1465138311&amp;do=diff</link>
        <description>Good practice

Verificare cod eroare

	* Verificați codul de eroare întors de apelurile de sistem.
		* Exemplu:

fd = open(FILENAME, O_RDONLY);
if (fd &lt; 0) {
    perror(&quot;open&quot;);
    exit(EXIT_FAILURE);   /* sau alta actiune */
}

if (ReadFile(fHandle,
        &amp;buffer,
        bytesToRead,
        &amp;bytesRead,
        NULL) == FALSE) {
               fprintf(stderr, &quot;Error reading file %d\n&quot;, GetLastError());
               exit(EXIT_FAILURE);
}</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/die?rev=1520026601&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-02T23:36:41+03:00</dc:date>
        <title>Macro-ul DIE</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/die?rev=1520026601&amp;do=diff</link>
        <description>Macro-ul DIE

Macrou-ul DIE folosit în sursele din laborator e util pentru verificarea codului de eroare întors de un apel de sistem.

Exemplu de utilizare:


fd = open(&quot;some file&quot;, O_CREAT, 0644);

DIE(fd &lt; 0, &quot;invalid file descriptor&quot;);


Macro-ul DIE este definit în fișierul util/utils.h din arhiva laboratorului și arată în felul următor:</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/gdb?rev=1426712105&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-03-18T22:55:05+03:00</dc:date>
        <title>GDB</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/gdb?rev=1426712105&amp;do=diff</link>
        <description>Rulare gdb

GDB poate fi folosit în două moduri pentru a depana programul:

	*  rulându-l folosind comanda gdb
	*  folosind fişierul core generat în urma unei erori grave (de obicei segmentation fault) 

Cea de a doua modalitate este utilă în cazul în care bug-ul nu a fost corectat înainte de lansarea programului. În acest caz, dacă utilizatorul întâlneşte o eroare gravă, poate trimite programatorului fişierul core cu care acesta poate depana programul şi corecta bug-ul.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/injections?rev=1457519682&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-09T12:34:42+03:00</dc:date>
        <title>Function Hooking and Windows Dll Injection</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/injections?rev=1457519682&amp;do=diff</link>
        <description>In this tutorial I'll show you how to modify the behavior of Windows programs at runtime.

Function Hot Patching

Problem: we have a function, foo() and we want bar() to be called instead.

Solutions:

	*  modify the code, replace foo() with bar(), doh!. Works when the source is available.
	*  write a library that exports a function with the same signature as foo(), which internally calls bar(). On Unix based systems use the LD_PRELOAD trick to load the library before any other. On Windows, eith…</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/ipc?rev=1650304986&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-18T21:03:06+03:00</dc:date>
        <title>IPC</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/ipc?rev=1650304986&amp;do=diff</link>
        <description>Nice to read

	*  TLPI - Chapter 51, Introduction to POSIX IPC
	*  TLPI - Chapter 52, POSIX messages queues
	*  TLPI - Chapter 53, POSIX semaphores
	*  TLPI - Chapter 54, POSIX shared memory

Mecanisme IPC

Comunicarea se poate realiza între procese de pe aceeași mașină sau de pe mașini diferite.  Exemple de mecanisme IPC:</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/online?rev=1583942999&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-11T18:09:59+03:00</dc:date>
        <title>Online</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/online?rev=1583942999&amp;do=diff</link>
        <description>Pentru foarte probabilele activități online pe care le vom desfășura la cursul de Sisteme de operare, vom folosi Microsoft Teams. Puteți folosi varianta din browser sau varianta desktop.

Pentru a accesa echipa “Sisteme de operare (CTI, ACS, UPB)” unde vom desfășura activitățile, folosiți link-ul acesta.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/oprofile?rev=1361257813&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-19T09:10:13+03:00</dc:date>
        <title>Oprofile</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/oprofile?rev=1361257813&amp;do=diff</link>
        <description>Oprofile

Oprofile este un sistem de profiling disponibil ca modul pentru kernel-ul de Linux (și integrat în variantele mai noi ale acestuia), capabil să analizeze atât kernel-ul, cât și aplicațiile utilizator. Folosește tehnica de sampling și se bazează pe informațiile oferite de contoarele din CPU.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/recapitulare?rev=1647273777&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-14T18:02:57+03:00</dc:date>
        <title>Recapitulare</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/recapitulare?rev=1647273777&amp;do=diff</link>
        <description>Laboratorul constă în subiecte în stilul celor de la examen, însoțite de mici bucăți de cod complete sau aproape complete pe care le puteți rula pentru a vă convinge. Discuția pe marginea subiectelor cu asistentul sau cu colegii este încurajată. Subiectele sunt suficient de multe încât nu pot fi acoperite într-un singur laborator.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/threaduri_extra?rev=1431968437&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-18T20:00:37+03:00</dc:date>
        <title>Thread-uri - Extra</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/threaduri_extra?rev=1431968437&amp;do=diff</link>
        <description>Terminarea thread-urilor

Există și posibilitatea ca un fir de execuţie să termine un alt fir, folosind mecanismul de “thread cancellation”. Pentru a face acest lucru se folosește funcţia pthread_cancel care primește ca parametru id-ul firului de execuţie ce urmează să fie terminat :</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/vs_tips?rev=1364287802&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-26T10:50:02+03:00</dc:date>
        <title>Visual Studio Tips and Tricks</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/vs_tips?rev=1364287802&amp;do=diff</link>
        <description>Visual Studio Tips and Tricks

Setarea parametrilor din linia de comandă

	*  Din meniu se selectează: Project -&gt; Properties
	*  În fereastra care apare se selectează Debugging, apoi se completeaza opțiunea 'Comand Arguments'

   

Afișarea numerotării liniilor

	*  Din meniu se selectează: Tools -&gt; Options
	*  În fereastra care apare se selectează: Text Editor -&gt; C/C++ -&gt; General, apoi se bifează opțiunea Line Numbers</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/windows-laborator?rev=1614457699&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-27T22:28:19+03:00</dc:date>
        <title>Windows - Tips&amp;Tricks</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/windows-laborator?rev=1614457699&amp;do=diff</link>
        <description>Informațiile din acesta pagina au rolul de a ajuta un student în rezolvarea laboratoarelor și a temelor pentru platforma Windows, din cadrul materiei Sisteme de Operare.

Resurse pentru lucrul cu Windows in cadrul materiei:

	*   Tutorial Visual Studio
	*   PowerShell
	*   Git in Cygwin 
	*   Dr. Memory</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/windows-video?rev=1361258805&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-19T09:26:45+03:00</dc:date>
        <title>so:laboratoare:resurse:windows-video</title>
        <link>http://ocw.cs.pub.ro/courses/so/laboratoare/resurse/windows-video?rev=1361258805&amp;do=diff</link>
        <description>*  install msvc
	*  install sp1
	*  install win32 sdk 7.1

	*  read (with a grain) &lt;http://goldfishforthought.blogspot.com/2008/04/n-habits-of-highly-defective-directshow.html&gt;
	*  &lt;http://tmhare.mvps.org/downloads.htm&gt;
	*  &lt;http://code.google.com/p/graph-studio-next/&gt;</description>
    </item>
</rdf:RDF>
