시스템 호출

리눅스 커널의 시스템 호출 인터페이스에 대한 개요. 다양한 구성 요소와 사용자공간 간의 통신을 관리한다.

시스템 호출 또는 시스템 콜(system call), 간단히 시스콜(syscall)은 운영 체제커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다.

운영 체제의 구성상, 커널과 응용 프로그램은 CPU의 권한 수준(privilege levels)이나 하드웨어 접근 능력이 다르다. 커널은 CPU 시스템의 RAM/FLASH 등에 물리 주소가 일치하는 링커구조를 가지고 특정 메모리 위치에서 동작한다. 이때 커널의 기계어 코드에서 사용하는 모든 주소는 물리 주소로 고정되어 컴파일되고 로드되어 실행된다. 따라서 커널은 부팅과정에서 전체 메모리 리소스 중에 일정 부분을 점유하여 동작하고 인터럽트 등 모든 하드웨어 접근이 가능하다. 그러나 응용 프로그램은 커널이 제공하는 자원을 사용하므로 메모리에서 상황에 따라 다른 위치를 점유하고 실행된다. 응용 프로그램은 사용자 요청에 따라 실행되는 프로그램이므로 물리 주소를 확정할 수 없다. 따라서 응용 프로그램이 작성되면 메모리 위치가 처음부터 로드된다고 생각하고 개발도구에서 링크된다. 보통 MMU를 통해 논리 주소를 물리 주소로 변환한다. 그리고 응용 프로그램은 CPU의 권한수준이 사용자 공간(user space)에서 동작하며 특정한 기계어 명령어 실행이 불가능하다. 이와 같은 상황에서 응용 프로그램이 파일 시스템을 사용하는 등 기타 여러 상황에서 커널에 의존해야만 한다. 응용 프로그램에서 커널의 서비스를 사용하는 방법이 시스템 호출이다. 커널의 인터럽트 처리 등의 과정을 프로그래밍하려면 어셈블리어와 C와의 혼용구조로 구성한다. 그리고 CPU나 컴퓨터 시스템의 구조나 상황이 다르므로 CPU에 따라 분리되어 작성되고 커널소스 폴더 구조에서 소스가 분리되어 작성되고 저장 관리된다. asmlinkage는 어셈블리어와 관계가 있는 예약어이다.

분류

시스템 호출이란 프로그래밍 언어에서 지원하지 않는 기능에 대하여 운영 체제의 루틴을 호출하여 이용하는 것을 말한다. 시스템 호출의 세 가지 기능은 다음과 같다.

  1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.
  2. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다.
  3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다.

시스템 호출의 유형

  1. 프로세스 제어(process control)
  2. 파일 조작(file manipulation)
  3. 장치 관리(device management)
  4. 정보 유지(information maintenance)
  5. 통신(communication)

명령어 실행과 시스템 호출

명령어 인터프리터 또는 을 통해 입력된 명령을 수행하는 과정에서 새로운 프로세스를 시작하기 위해서는 시스템 호출을 해야 한다. 예를 들어 유닉스 시스템에서는 새로운 프로세스를 시작하기 위해 exec 시스템 호출 이후 fork 시스템 호출이 뒤따른다. exec 호출이 호출 프로세스 위로 다른 실행가능한 새로운 프로세스를 띄우는 동안, fork 호출은 현재 실행 중인 프로세스를 복제한다.

리눅스커널은 권한수준이 최고수준(x86, Ring 0)에서 실행되며 하드웨어 제어, 응용 프로그램의 스케줄링 및 시분할 실행을 하도록 제어한다. 하드웨어 제어를 하는 모든 권한을 커널에서 가지고 있기 때문에 파일 시스템 같은 경우 응용 프로그램에서는 직접 제어할 수 없다. 따라서 응용 프로그램에서 하드웨어의 데이터를 가져오거나 쓰려면 커널의 장치 드라이버와 연동되어 실행되어야 한다. 결국 응용 프로그램이 파일 시스템을 이용하려면 커널의 파일 시스템 드라이버로 넘어가 실행되어야 하므로 시스템 호출 방법을 사용한다.

리눅스 커널의 장치 드라이버와 시스템 호출 예

  • 리눅스 커널의 장치 드라이버 예
권한수준 커널 공간(kernel space, x86 레벌 링0, ARM 슈퍼바이저 모드(Supervisor Mode))에서 실행.
static struct file_operations hw_mydrv_fops = {
  .owner = THIS_MODULE,
  .open =  mydrv_open,
  .release = mydrv_release,
  .read = mydrv_read,
  .write = mydrv_write,
  .unlocked_ioctl = mydrv_ioctl,
 };
 static struct miscdevice hw_mydrv_driver = {
  .minor = MISC_DYNAMIC_MINOR,
  .name = "mydrv",
  .fops = &hw_mydrv_fops,
 };

와 같은 구조로 장치를 정의한다. 이 경우 각각의 함수는 응용 프로그램의 요청에 따라 커널에서 실행된다.

  • 응용 프로그램 예
권한수준 사용자 공간(user space, x86 링3, ARM 사용자 모드(User Mode))에서 실행.
응용 프로그램에서의 리눅스 커널의 장치 드라이버 호출.
char gbuff[100];

int main(int argc, char*argv[])
{
   int leng;
   int fp;

    fp = open("/dev/mydrv", ....);  // mydrv_open 호출
    gbuff[0] = 10;
    gbuff[1] = 20;
    leng = 2;
    write(fp, (void*) gbuff, leng);   // mydrv_write호출

    close(fp);                       // mydrv_release호출
    return 0;
}

응용 프로그램은 CPU의 권한수준이 사용자 공간에서 실행되므로 커널 공간이 필요한 하드웨어 제어를 할 수 없으므로 위와 같이 커널의 장치에서 넣어 하드웨어 제어를 한다.

다음과 같은 절차로 응용 프로그램 함수가 커널의 함수와 연결된다:

  1. 응용 프로그램에서 open(...) 함수를 실행하면 libc에서 제공한 open 함수 속에서 인수 데이터를 레지스터에 넣고 소프트웨어 인터럽트를 실행한다.
  2. 소프트웨어 인터럽트에 의해 ISR(Interrupt Service Routine)이 있는 커널의 인터럽트 처리 위치를 찾아 해당 주소로 실행을 옮긴다. 이때 CPU는 권한수준이 최고수준인 실행모드가 된다. CPU의 인터럽트 메커니즘에 의해 자동변환된다.
  3. 많은 시스템 호출 함수 중에 해당 인터럽트 벡터 숫자를 이용해 함수의 위치를 탐색하고 해당 주소로 점프한다. 커널 속의 장치 목록에서 해당 장치를 찾고 드라이버의 함수 .open에서 정의된 mydrv_open(...)가 호출된다.
  4. mydrv_open()함수의 return에 따라 커널의 함수 호출이 완료되고, 커널은 다시 해당 응용 프로그램을 스케줄링에 의해 활성화하고 해당 프로세서로 전환한다. 이 때 CPU의 권한수준은 다시 사용자 모드로 전환된다.

만약 write 함수나 read 함수의 호출에 의해, 커널의 함수가 호출된 후 return에 의해 종료되지 않으면 응용 프로그램은 스케줄링에서 빠져 커널의 상태에서 머물면서 블럭킹 현상이 발생한다. 해당 드라이버의 인터럽트 등으로 블럭킹을 해제할 수 있다.

같이 보기

외부 링크

Read other articles:

Letak Gulfport di Mississippi Gulfport merupakan sebuah kota di Amerika Serikat. Kota ini letaknya di bagian selatan. Tepatnya di negara bagian Mississippi. Pada tahun 2010, kota ini memiliki jumlah penduduk sebesar 67.793 jiwa dan memiliki luas wilayah 166,4 km². Kota ini memiliki angka kepadatan penduduk sebesar 1.231 jiwa/km². Pranala luar Situs web resmi Artikel bertopik geografi atau tempat Amerika Serikat ini adalah sebuah rintisan. Anda dapat membantu Wikipedia dengan mengembang...

 

Granitic SeychellesGranitic Seychelles forestsThe small granitic island of Chauve Souris (Praslin)Map of the Granitic SeychellesEcologyRealmAfrotropicalBiomeTropical and subtropical moist broadleaf forestsGeographyArea166 km2 (64 sq mi)CountriesSeychellesCoordinates4°30′58″S 55°34′37″E / 4.516°S 55.577°E / -4.516; 55.577ConservationConservation statusCritical/endangeredProtected38 km2 (23%)[1] The Granitic Seychelles are the islands i...

 

Greek revolutionary Anastasios Manakis or Michaloglou (Greek: Αναστάσιος Μανάκης-Μιχάλογλου; c. 1790 - 27 July 1864) was a Greek revolutionary of the Greek War of Independence. Anastasios ManakisA portrait of Anastasios ManakisNative nameΑναστάσιος Μανάκης-ΜιχάλογλουBorn1790Anilio, Pashalik of Yanina, Ottoman Empire (now Greece)Died27 July 1864Athens, Kingdom of GreeceAllegiance First Hellenic RepublicService/branch Hellenic Arm...

Pour les articles homonymes, voir Garrigou. Gustave GarrigouGustave Garrigou après sa victoire au premier championnat de France de cyclisme sur route en 1907 (sur Peugeot).InformationsNom de naissance Cyprien Gustave GarrigouNaissance 24 septembre 1884Vabre-Tizac (Aveyron)Décès 25 janvier 1963 (à 78 ans)Esbly (Seine-et-Marne)Nationalité françaiseÉquipes professionnelles 1907-1908Peugeot-Wolber1909-1912Alcyon-Dunlop1913 Peugeot-Wolber et Alcyon1913-1914Peugeot-WolberPrincipales vi...

 

1929 film Oh, Yeah!Directed byTay GarnettWritten byTay Garnett James GleasonBased onNo Brakes by A.W. SomervilleStarringRobert Armstrong James Gleason Zasu PittsCinematographyArthur C. MillerEdited byClaude BerkeleyProductioncompanyPathé ExchangeDistributed byPathé ExchangeRelease dateOctober 19, 1929Running time74 minutesCountryUnited StatesLanguageEnglish Oh, Yeah! (also written as Oh, Yeah?) is a 1929 American pre-Code action film directed by Tay Garnett and starring Robert Armstrong, Ja...

 

Enrica Bonaccorti nel 2010 Enrica Bonaccorti (Savona, 18 novembre 1949[1]) è una conduttrice televisiva, conduttrice radiofonica, paroliera e attrice italiana[1]. Ha esordito nei primi anni settanta come attrice di teatro, di cinema e di prosa televisiva, collaborando anche con la compagnia di Paola Quattrini e Domenico Modugno, per il quale ha scritto diversi brani tra cui La lontananza. Attiva anche come conduttrice radiofonica, ha esordito in televisione alla Rai nel 1978 ...

Windarti Agustina Windarti Agustina adalah seorang politikus Indonesia. Ia tergabung dalam Partai Demokrasi Indonesia Perjuangan (PDIP). Ia menjabat sebagai Wakil Wali Kota Magelang dari 2016 sampai 2021. Pada pemilihan umum Wali Kota Magelang 2020, ia maju sebagai Cawawalkot mendampingi Aji Setyawan selaku Cawalkot, namun kalah dengan pasangan Muchamad Nur Aziz-M. Mansyur.[1] Referensi ^ Fitriana, Ika (4 September 2020). Arief, Teuku Muhammad Valdy, ed. Nyalon dalam Pilkada, Anak Wal...

 

Voce principale: Trophée des champions. Supercoppa di Francia 2007Trophée des champions 2007 Competizione Supercoppa di Francia Sport Calcio Edizione 31ª Organizzatore LFP Date 28 luglio 2007 Luogo  Francia Partecipanti 2 Risultati Vincitore Olympique Lione(7º titolo) Secondo Sochaux Statistiche Miglior giocatore Sidney Govou[1] (O. Lione) Incontri disputati 1 Gol segnati 3 (3 per incontro) Pubblico 30 529 (30 529 per incontro) Cronologia della competizio...

 

Former independent agency of the government of the United States Committee on Public InformationCPI poster, 1917Agency overviewFormedApril 13, 1917 (1917-04-13)DissolvedAugust 21, 1919 (1919-08-21)Superseding agenciesliquidated to: Council of National Defensesimilar later agencies: Office of War Information (WWII)JurisdictionUnited States GovernmentHeadquartersWashington, D.C.Employeessignificant staff plus over 75,000 volunteersAgency executivesGeorge Creel, cha...

Marcus Stroman Stroman con i Mets nel 2019 Nazionalità  Stati Uniti Altezza 170 cm Peso 81 kg Baseball Ruolo Lanciatore Squadra  New York Yankees CarrieraSquadre di club 2014-2019 Toronto Blue Jays2019, 2021 New York Mets2024 New York YankeesNazionale 2017 Stati Uniti Statistiche Batte destro Lancia destro Basi su ball 288 Strikeout 853 Punti concessi 415 Media PGL 3,63 Inning totali 1 028,1 Salvezze 1 Vittorie 61 Sconfitte 60 Rapporto vittorie 0,504 Palmarès ...

 

Флаг гордости бисексуалов Бисексуальность      Сексуальные ориентации Бисексуальность Пансексуальность Полисексуальность Моносексуальность Сексуальные идентичности Би-любопытство Гетерогибкость и гомогибкость Сексуальная текучесть Исследования Шк...

 

Le Fabuleux Destind'Amélie Poulain Données clés Réalisation Jean-Pierre Jeunet Scénario Guillaume LaurantJean-Pierre Jeunet Musique Yann Tiersen Acteurs principaux Audrey TautouMathieu KassovitzRufusSerge MerlinJamel Debbouze Sociétés de production Claudie Ossard Productions UGC Victoires Productions Tapioca Films France 3 Cinéma Sofica Sofinergie 5 Canal+ MMC Independent GmbH Pays de production France Allemagne Genre Comédie romantique Durée 122 minutes Sortie 2001 Pour plus de d�...

Stasiun Shimonoshō下庄駅駅Stasiun ShimonoshōLokasi578 Shimonoshō, Kameyama, Mie(三重県亀山市下庄町578)JepangOperatorJR CentralJalurJalur Utama KiseiSejarahDibuka1891PenumpangFY2010354 per hari Sunting kotak info • L • BBantuan penggunaan templat ini Stasiun Shimonoshō (下庄駅code: ja is deprecated , Shimonoshō-eki) adalah sebuah stasiun kereta api di Tsu, Prefektur Mie, yang dioperasikan oleh Central Japan Railway Company (JR Central). Stasiun tersebut b...

 

Resin plastic, popular 1930s-1950s For the drug with trade name Catalin, see Pirenoxine. For the Romanian first name, see Cătălin. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Catalin – news · newspapers · books · scholar · JSTOR (January 2015) (Learn how and when to remove this message) Catalin is a br...

 

Untuk sistem window untuk sistem pengoperasian Rencana 9, lihat 8½ (Rencana 9). 8½Poster teatrikal asliSutradaraFederico FelliniProduserAngelo RizzoliSkenarioFederico FelliniEnnio FlaianoTullio PinelliBrunello RondiCeritaFederico FelliniEnnio FlaianoPemeranMarcello MastroianniClaudia CardinaleAnouk AiméeSandra MiloPenata musikNino RotaSinematograferGianni Di VenanzoPenyuntingLeo CatozzoPerusahaanproduksiCinerizFrancinexDistributorColumbia Pictures (Prancis)Embassy Pictures (AS)Tangga...

11th-century Chinese history book New Book of TangTraditional Chinese新唐書Simplified Chinese新唐书TranscriptionsStandard MandarinHanyu PinyinXīn TángshūWade–GilesHsin T'angshuSouthern MinHokkien POJSin Tông-su Southern Song edition of the Book of Tang edited and annotated by Chen Jian 陳鑒 The New Book of Tang, generally translated as the New History of the Tang or New Tang History, is a work of official history covering the Tang dynasty in ten volumes and 225 chapter...

 

العلاقات البوتسوانية الكازاخستانية بوتسوانا كازاخستان   بوتسوانا   كازاخستان تعديل مصدري - تعديل   العلاقات البوتسوانية الكازاخستانية هي العلاقات الثنائية التي تجمع بين بوتسوانا وكازاخستان.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة و...

 

Ministério da Educação Logotipo do Ministério Sede do Ministério da Educação Organização Natureza jurídica Ministério Dependência Poder Executivo do Brasil Chefia Camilo Santana Orçamento anual R$ 137,9 bilhões (2022) [1] Localização Jurisdição territorial  Brasil Sede Esplanada dos Ministérios Histórico Criação 14 de novembro de 1930 (93 anos)  Nota: MEC redireciona para este artigo. Para outros significados, veja MEC (desambiguação). O Minist�...

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (يناير 2018) الدوري البحريني الممتاز 1975–76معلومات عامةالرياضة كرة القدم البطولة الدوري الب...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Loftleiðir Penerbangan 001 – berita · surat kabar · buku · cendekiawan · JSTOR (Oktober 2010) Loftleiðir Penerbangan 001Leifur Eiríksson, pesawat Loftleiðir yang mengalami kecelakaan.Ringkasan kecelakaanT...