Computer Science

    CPU 스케줄링

    서론 스케줄러(Scheduler)는 언제, 어떤 프로세스를 선택해서 CPU에서 실행시킬지 결정하는 모듈이다. 멀티프로그래밍의 목적은 CPU 효율을 극대화하는 것이므로 적절한 스케줄링이 필수적이다. 기본적으로 프로세스는 CPU만 사용하는 단계(CPU burst)와 I/O 작업만 하는 단계(I/O burst)의 반복으로 구성된 사이클 형태로 수행된다. 이러한 여러 작업이 혼재되어 있기 때문에 CPU 스케줄링이 필요하다. CPU Scheduler는 메모리에서 Ready 상태의 프로세스 중 어떤 프로세스를 CPU에 할당할지 선택한다. CPU 스케줄링으로 인해 프로세스의 상태는 다음과 같이 변경될 수 있다:Running → Waiting(Blocked): I/O 요청이나 자식 프로세스의 종료를 기다리는 경우Run..

    브라우저 렌더링: html parser와 css parser

    브라우저 렌더링: html parser와 css parser

    1. 서론 웹서버에 요청을 하면 브라우저는 우리가 접근하려는 웹페이지의 HTML 파일을 포함한 응답을 받는다. 유저에게 웹페이지를 보여주기 위해서 브라우저는 파일을 파싱, 렌더링, 페인트 해야 한다. 파싱이란 프로그램을 분석하고 실행 환경에서 실제로 실행할 수 있는 내부 형식으로 변환하는 것이다. 즉, 파싱은 우리가 작성한 코드(HTML, CSS)를 브라우저가 작업할 수 있는 형태로 변환하는 것을 의미한다. 파싱은 브라우저 엔진에 의해 수행된다. 브라우저 엔진에는 Gecko, Webkit, Blink 등이 있다.2. HTML Parsing2.1 Byte Stream Decoder입력: 3C 62 6F 64 79 3E 48 65 6C 6C 6F 2C 20 3C 73 70 61 6E 3E 77 6F 72 6..

    왜 리눅스는 서버OS로 많이 사용되는가: 리눅스 커널

    왜 리눅스는 서버OS로 많이 사용되는가: 리눅스 커널

    서론 서버형 컴퓨터에 OS로는 대부분 리눅스를 사용하는 것을 알 수 있다. 델, 아마존, 애저에서 클라우드 및 네트워크 엔지니어로 일하는 선배들의 말을 들었을 때 대부분의 서버에 OS는 리눅스를 사용한다고 한다. 여태까지 개발자가 리눅스를 사용하는 이유 혹은 서버에서 OS로 리눅스를 선택하는 이유에 대해 막연하게 리눅스가 CLI가 잘 되어 있어서라고 알고 있었는데, 이 글에서는 왜 리눅스가 윈도우보다 서버 OS로 더 많이 선택되는지에 대해서 알아보고자 한다. 물론 OS는 드라이버, 시스템 라이브러리, UI, 커널 등 다양한 요소들로 이루어져 있지만, 이 글에서는 리눅스의 커널에 대해서 알아보고자 한다. 배경지식커널 커널은 운영체제의 핵심 구성 요소 중 하로, 하드웨어와 소프트웨어 간의 중개자 역할을 한다..