Szukaj:



Ostatnio oglądane:
  • Fork [pl]
  • admin.lib.inc.php [pl]
  • Main Page/ [ru]
  • /include [ru]
  • Flaga Ukrainy [pl]
  • Generałowie zakonu dominikanów [pl]
  • Flaga Rosji [pl]
  • Filozofia [pl]
  • Fajerka [pl]
  • Funkcja Γ [pl]
  • Flaga Włoch [pl]
  • Filozofia kultury [pl]
  • Gąbki [pl]
  • GNU General Public License [pl]
  • Filmoznawstwo [pl]
  • Filatelistyka [pl]
  • GTK [pl]
  • Fatoumata Dembele Diarra [pl]
  • Film polski [pl]
  • Geniusz [pl]
  • Gmina Radków (powiat kłodzki) [pl]
  • Fajans [pl]
  • Flaga Stanów Zjednoczonych [pl]
  • Faraon [pl]
  • Fazowanie [pl]
  • GWT [pl]
  • Felt Mountain [pl]
  • Funkcja (matematyka) [pl]
  • Galilea [pl]
  • Wybierz język: ar | id | bg | ca | ceb | cs | da | de | et | en | es | eo | fr | he | hr | it | ko | lt | hu | nl | ja | no | pl | pt | ru | ro | sk | sl | sr | fi | sv | te | tr | uk | zh
    Historia i autorzy | źródło tekstu - Wikipedia | Edycja

    Fork

    Ten artykuł dotyczy programowania. Zobacz też: inne znaczenia tej nazwy.

    W informatyce, słowo Fork (z angielskiego, dosłownie rozwidlenie) ma dwa znaczenia:

    1. Sytuacja, gdy twórcy projektu informatycznego decydują się na jego podzielenie i dalszy rozwój w dwóch różnych kierunkach
    2. W programowaniu: utworzenie dwóch bliźniaczych kopii procesu, działających równolegle

    [edytuj] 1. Podział projektu informatycznego

    Fork to sytuacja, w której rozwój projektu nie prowadzi już jedną drogą, ale rozwidla się na dwie lub więcej gałęzi.

    Jedna grupa forków dotyczy projektów których zasięg stał się z praktycznego punktu widzenia za duży. Np. na potrzeby projektu GIMP powstał zbiór widgetów, który został wyforkowany do GTK+. GTK+ ulegało potem dalszym forkom, odłączyły się od niego m.in. GLib i Pango.

    Inną grupą są specjalne wersje projektu, rozwijane jednak we współpracy z "główną gałęzią", np. wersje Apache czy jądra Linuksa używane w różnych dystrybucjach, czy też CinePaint (dawniej Film Gimp) który odłączył się od GIMP-a.

    Trzecią grupę stanowią sytuacje kiedy wskutek konfliktów co do właściwego kierunku rozwoju projektu powstaje kilka różnych gałęzi. Zwykle jedna z gałęzi powstałych po rozpadzie szybko ginie, np. EGCS odłączyło się od GCC, po czym stało się jedyną oficjalną wersją, gdyż programiści GCC przeszli do projektu EGCS (który od tego czasu ponownie nosi nazwę GCC). Czasem różne gałęzie istnieją obok siebie przez bardzo długi czas, pozostając ze sobą w różnych stosunkach. Tak jak np. XEmacs i GNU Emacs, czy różne wersje systemu BSD - FreeBSD, OpenBSD, NetBSD itd.
    Podobna sytułacja miała miejsce przy znanym środowisku graficznym do Linuksa - od projektu Compiz odłączyła się gałąź eksperymentalna - Beryl. W drugiej połowie roku 2007 liderzy grup programistycznych dwóch gałęzi postanowili połączyć swoje projekty w jeden - Compiz Fusion.

    [edytuj] 2. Fork w programowaniu

    Funkcja fork() i fork1() jest funkcją w systemie operacyjnym Unix (i nie tylko) powodującą, że pojedynczemu programowi, któremu do jego wykonania przypisany jest pojedynczy proces w systemie operacyjnym, przypisuje się dwa procesy poprzez rozwidlenie: rodzic i dziecko - czyli tworzy nowy proces. W chwili utworzenia, proces - dziecko jest kopią procesu - rodzica (kopiowane są obszary pamięci, wartości zmiennych i część środowiska). Aby umożliwić zróżnicowanie dalszego działania obu procesów, konieczne jest ustalenie, który z nich jest dzieckiem, a który rodzicem. W tym celu testuje się wartość zwracaną przez funkcję fork() lub fork1(), która wynosi:

    • -1 w rodzicu, kiedy nie powiedzie się stworzenie nowego procesu (dziecka)
    • 0 w dziecku
    • id_procesu dziecka (czyli jakaś liczba naturalna większa od zera) w rodzicu, który się rozwidlił

    i uzależnia podjęcie dalszych działań od uzyskanego wyniku. Fragment przykładowego kodu w C:

     
    switch(fork())
    {
      case -1:
        //jesteśmy w rodzicu, ale niepowodzenie
     
      case 0:
        //jesteśmy w dziecku
     
      default:
        //jesteśmy w rodzicu
    }
    
    Change language: All | العربية | Bahasa Indonesia | Български | Català | Cebuano | Česky | Dansk | Deutsch | Eesti | English | Español | Esperanto | Français | עברית | Hrvatski | Italiano | 한국어 | Lietuvių | Magyar | Nederlands | 日本語 | Norsk (bokmål) | Polski | Português | Русский | Română | Slovenčina | Slovenščina | Српски / Srpski | Suomi | Svenska | తెలుగు | Türkçe | Українська | 中文

    Autorem skryptu AdWiki v0.9uni (2007) jest husky83 (licencja dla bestpartner )
    Wikipedia jest zarejestrowanym znakiem towarowym Wikimedia Foundation
    Wszystkie materiały pochodzą z Wikipedii, obięte są licencją GNU Free Documentation License
    no host niezarejestrowana strona 906 brak hosta niezarejestrowana strona | wymiana linkami system wymiany linków wymiana linkami . - . - . - . - . - . - . - . - . -