CS

    프로세스 스케쥴링과 스케쥴링 알고리즘

    프로세스 스케쥴링 CPU를 사용하고자 하는 프로세스들 사이에서 우선순위를 관리하는 것 스케쥴링의 목적은 다음과 같다. 처리율, CPU 이용율을 증가시킨다. 오버헤드/응답시간/반환시간/대기시간을 최소화시킨다. → CPU를 쉬지 않고 굴리는 것이 목표다. 스케쥴링 방식 선점형 스케쥴링과 비선점형 스케쥴링이 있다. 비선점형 하나의 프로세스가 끝날 때 까지 다른 프로세스는 기다려야 한다. 장점 스케쥴러 호출 빈도가 낮아 문맥 교환에 의한 오버헤드도 덜 발생 일을 순차적으로 처리하는 배치처리(일괄처리) 시스템에 적합 단점 긴 프로세스 하나가 짧은 여러 프로세스들을 대기시킬 수도 있다. 그러므로 처리율이 떨어진다. 선점형 하나의 프로세스가 다른 프로세스 대신 CPU(프로세서)를 차지할 수 있다. 장점 스케쥴링 방식..

    [컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

    [컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

    컴파일러 [컴파일러] 컴파일러란? 컴파일러 컴파일러는 명령어 번역 프로그램이다. 컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다. 쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드이며, 목적 gobae.tistory.com 에서 컴파일러는 소스코드를 기계어로 바꿔주는 역할을 한다고 했다. 여기서 컴파일러는 구문 분석 -> 최적화 -> 코드 생성 -> 링킹의 과정을 거친다. 이 포스팅에서는 구문 분석에 대해 살펴보겠다. 컴파일러의 구문 분석 과정 컴파일의 첫 과정인 구문 분석 과정을 살펴보자. 컴파일러가 소스 코드 파일을 읽어서 개별 문법 요소 단위로 자른 뒤, 이 문법 요소들을 해석해서 추상 구문 트리(AST)를 작성한다. 사실 필자도 쓰면서 무슨 말인지 잘 모르겠으니, 자세..

    [컴파일러] 컴파일러란?

    [컴파일러] 컴파일러란?

    컴파일러 컴파일러는 명령어 번역 프로그램이다. 컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다. 쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드이며, 목적 코드는 기계어(컴퓨터가 이해할 수 있는 언어)라고 생각할 수 있겠다. 물론, 목적 코드가 문서 파일이나, 그림 파일 등이 될 수도 있다. 컴파일러가 왜 필요한가? 우리가 사용하는 C, C++, 파이썬 자바스크립트 등은 "사람이 이해하기 쉬운 형태"의 언어이다. 우리가 열심히 작성한 코드를 사실 컴퓨터는 이해하지 못한다. 여기서 컴파일러는 우리가 작성한 코드를 일정한 규칙을 가지고 컴퓨터가 이해할 수 있도록 바꿔준다. 즉, 우리와 미국인 사이에 국어와 영어를 모두 아는 컴파일러라는 통역사가 의사소통을 돕는 것이다. 이 컴파..

    [리눅스] 파일 접근 권한

    [리눅스] 파일 접근 권한

    파일 접근 권한 다음과 같은 "permission denied" 경고를 본적 있는가? 이는 파일 접근 권한때문에 생기는 이슈이다. 특정 파일이 읽을 수는 있어도 실행할 수 없을 수도 있고, 디렉토리에 접근이 불가능 할 수도 있다. 이와 같이, 모든 파일에는 사용자마다 접근할 수 있는 권한이 있다. 다음의 표로, 파일 접근 권한을 요약할 수 있다. r : read, w : write, x : execute 권한을 나타낸다. 터미널에서 ls -l 명령어로 위와 같이 파일의 권한을 볼 수 있다. 각각 순서대로 파일 속성(타입), 소유자 권한, 소유그룹 권한, 그 외 권한 으로 나타낸다. -/rw-/r--/r-- 다음의 결과를 가지고 파일 타입, 소유자 권한, 그룹 권한, 그 외 권한에 대해 설명해보겠다. 파일..

    [쉘] 쉘이란?

    [쉘] 쉘이란?

    쉘이란? 쉘 명령어와 프로그램을 실행할 때 사용하는 인터페이스. 사용자로부터 받은 명령을 해석하며, 프로그램을 실행하는 역할. = 쉘은 OS의 Kernal과 사용자간 다리역할을 한다. 다음과 같이, "터미널" 과 같이 명령어를 입력하는 환경을 의미한다. 쉘의 주요 기능 사용자 명령을 해석하고, 커널로 전달하는 명령어 해석기 기능 프로그래밍 기능 a. 여러 명령으로 반복적인 작업을 하나의 프로그램으로 만들 수 있음. ex) 쉘 스크립트 사용자 환경 설정 a. 초기화 파일로, 사용자 초기 환경 설정 가능 쉘 종류와 특징 쉘은 커널에서 분리된 별도의 프로그램이다. 그림 이외에도 다양한 쉘이 존재하나, 지금은 거의 bash(Bourne-again shell)이 사용된다. 1) Bourne Shell(sh) be..

    [쉘] 쉘 스크립트 작성하고 실행하기

    [쉘] 쉘 스크립트 작성하고 실행하기

    쉘 스크립트 쉘 스크립트란 쉘이 특정한 명령들을 실행하도록 쉘 명령들을 적어둔 스크립트 파일이다. 이 때 가장 많이 쓰이는 쉘은 bash쉘로, #!/bin/bash 라는 구문을 들어봤을 것이다. #!/bin/bash 쉘 스크립트를 만들때 항상 상단에 적어두는 것이다. 이는 스크립트 파일이, bash 쉘로 실행시킨다는 의미로, 만약 tsch(티시셸)로 실행시키고 싶다면 #!/bin/tsch 로 적어주면 된다. 쉘 스크립트를 만들고 실행하기 쉘 스크립트 만들기 우선 쉘 스크립트를 만들어야 한다. 내 컴퓨터에서 터미널을 실행한다. 쉘 스크립트를 만들고자 하는 디렉토리로 들어가서, vi test.sh 를 입력한다. 다음의 화면이 나오면, i로 입력모드로 들어간다. #!/bin/bash echo "hello wo..