Hi there!

I am a student studying computer science.

728x90

분류 전체보기 127

시스템 프로그래밍 3장 - System call : File I/O

두 개의 processes에서 각각 file에 대한 연산을 할 때 자신의 file descritor가 관린한다. OS level에서는 global하게 file table을 관리한다. 어떤 file의 descriptoy가 생성되었는지 등 각 processes는 해당되는 file에 대한 descriptor로 접근하고 실제 file system에서는 i-node를 매체로 data를 조작한다. v-node 객체 ?? #include int dup(int fd); 동일한 file에 대해서 중복된 file descriptor를 만들수 있다. fd : file descriptor return 중복되어 접근할 수 있는 새로운 descriptor / -1 #include int dup2(int fd1, int fd2);..

시스템 프로그래밍 3장 - System call

System call file I/O 직접적으로 실행가능한 file io Linux file system - linux파일 시스템은 여러가지로 모듈화 되어있다 - 가장 중요! disk의 file을 관리한다. - user에게 system call API를 제공한다. 이를 통해서 유저는 kernel에 접근 가능하다. kernel은 자신이 관리하는 구조에 대해서 접근,쓰기,읽기 권한을 관리한다. 각 file은 inode를 가지고 그것을 통해서 file에 대한 정보, metadata를 관리된다. 이건은 Data structure이다. inode contents filename file type file owner id access perission 접근 권한 rwx r-x r-x(사용자, 그룹, 다른) crea..

시스템 프로그래밍 2장 - Library call : File I/O function

File Open #include FILE *fopen(const char *filename, cosnt char *type); file를 open하는 함수 filename : file이름 string 형태로 type : - r : read only - w : write (파일 사이즈를 zero), 새거 생성 가능 - a : 쓰기가능인데 append if 기존 파일이 있으면 열어서 이어서 쓰고 없으면 생성 - r+ : r/w - w+ : r/w 기존 파일이 있으면 file size를 0으로 or 새로 만들어서 - a+ : r/append 기존파일이 있으면 이어서 없으면 생성 return 열린 file에 대한 file stream pointer / NULL File Reopen #include FILE *..

시스템 프로그래밍 2장 - Library call : File I/O

Standard I/O Library - File I/O와 관련된 Library가 define된 header file - fopen fclose fread fwrite fflush fgetc 등이 들어있다. I/O stream object - 를 이용해서 standard I/O Library를 이용해서 프로그래밍하면 그 대상이 되는 객체 - 대문자 FILE* 포인터 형태로 넘겨받는다. - 대상이 되는 파일에 대해서 I/O를 수행할 수 있게 된다. - file에 대한 유용한 시스템 정보들을 가지고 있는 객체이다. 특별히 shell에 대해서는 객체 3개를 제공한다. stdin 표준 입력, stdout 표준 출력, stderr 표준 에러 File I/O 방식 - Library call / System call..

시스템 프로그래밍 2장 - Library call

System call / Library call 차이 System call : - OS안에 - 그들이 구현되어있는 것이 kernel내에 있어서 user가 진입하는 entry point Library call : - OS밖에 - 커널밖에 존재하기 때문에 user의 call을 라이브러리가 변경시켜서 kernel에 전달을 하는 기능을 하는 프로그램 System call은 다양한 측면에서 사용할 수 있다. System call을 직접 사용할 수 있고 Libray call을 통해서 사용할 수 있다. System Calls & Library Calls for File I/O Library call - Library는 자체도 하나의 프로그램 - System call을 통해서 System kernel에 있는 Syste..

시스템 프로그래밍 1장 - Shell, File system, Compile

Shell이란? User가 명령어 기반으로 운영체제에 쉽게 접근할 수 있도록 만들어준 interface! (shall도 하나의 프로그래밍이다.) Shell의 기능 - 다른 프로그램을 command line으로 실행한다. - OS안의 file과 process를 command line으로 관리한다. terminal에서 command를 치면 shell을 통해서 kernel, 즉 OS에 전달해서 기능을 한다. 주로 사용되는 Shell 기본적으로 여러가지 shell 프로그램이 설치가 되어있다. shell관련된 utility들은 _ /bin / sh, _ /bin / csh _ /bin / tsch _ /bin / ksh _ /bin / bash #free ksh clone Shell의 동작 계속 program을 ..

시스템 프로그래밍 1장 - System-call, Library-call

User가 커널의 resource를 사용하는 방법은 System Calls / Libaray Call Sysstem Call은 kernel code로 직접 접근하는 entry points이다. Library call은 user code를 원하는 system-call function으로 변환시켜주는 Library system-call을 다시 한번 더 라이브러리로 제공하여 접근! z.B) C에 있는 Systemcall : read(...) / Library-call : fread(...) Linux System Calls Overview

시스템 프로그래밍 1장 - OS

Operating System 운영체제란? Application program과 컴퓨터 Hardware를 중재하는 역할을 하는 프로그램 OS의 목적 - 컴퓨터 시스템을 편하게 사용한다. - 컴퓨터 하드웨어의 자원을 효율적으로 관리 OS의 주요 기능 Top 4 -Multi-user environment 여러 유저가 동시에 사용할 수 있는 환경 -Process and Scheduling 여러 프로그램을 동시에 실행시킬 수 있도록 -User space and Kernel space 여러 개 프로그램을 독립적으로 작동할 수 있도록 Address space관리, User level과 Kernel Level을 별도로 관리 -Basic and Advanced I/O 컴퓨터 시스템의 주요 자원이 주변장치(I/O)를 통..

시스템 프로그래밍 개요

시스템 프로그래밍 이란? 시스템 프로그래밍에는 컴퓨터 하드웨어가 프로그래머 및 사용자와 상호 작용하여 컴퓨터 시스템에서 응용 프로그램 소프트웨어를 효과적으로 실행할 수있는 컴퓨터 프로그램 설계 및 작성이 포함됩니다. 일반적인 시스템 프로그램에는 운영 체제 및 펌웨어, 컴파일러, 어셈블러, I / O 루틴, 인터프리터, 스케줄러, 로더 및 링커와 같은 프로그래밍 도구와 컴퓨터 프로그래밍 언어의 런타임 라이브러리가 포함됩니다. 출처 : https://www.techopedia.com/definition/9616/system-programming 컴퓨터 시스템은 하드웨어와 운영체제로 나눌 수 있고, 이러한 컴퓨터 시스템을 이용하여 소프트웨어를 개발하고 운영체제 기능을 활요하는 프로그래밍을 시스템 프로그래밍이라..

728x90