목록전체 글 (182)
취미가 좋다
스케줄링에 대해서 알아보자. 스케줄리의 목적 스케줄링 기준 및 단계 스케줄링 정책 스케줄링을 왜 해야할까? 먼저 우리의 시스템은 여러 프로세스를 가지고 있는 다중프로그래밍 환경이다. 다중 프로그래밍 : 여러 개의 프로세스가 시스템 내에 존재하는 환경 자원을 할당할 프로세스를 선택해야 하기 때문에 스케줄링이 필요하다. 자원을 나누어 주는 방법은 2가지가 있다. 1. 시간 분할 (time sharing) 관리 CPU는 한 번에 하나의 프로세스만 들어가서 사용할 수 있는 자원이다. 따라서 프로세서 사용 시간을 프로세스들에게 분배하는 것을 프로세스 스케줄링 (Process Scheduling)이라고 한다. 2. 공간 분할 (space sharing) 관리 반면 메모리 같은 경우는 여러 프로세스가 동시에 사용할 ..
우리의 컴퓨터는 언젠가 고장날 수 있고, 그 안의 데이터는 분명 손실될 수 있다. 그 위험으로부터 벗어나기 위해, 멀리 떨어진 다른 컴퓨터에 저장하는 것이 백업이다. 다른 컴퓨터의 백업 서버에 원격으로 데이터를 저장하고 불러오는 작업을 하려고 한다. git hosting은 우리가 작업하는 로컬 저장소에 버전을 업로드할 원격 저장소를 임대해주는 서비스이다. 이를 이용하여 쉽고 간편하게 백업 서버인 원격 저장소를 이용할 수 있고, 여러 컴퓨터에서도 같은 작업을 할 수 있고 여러 명과도 쉽게 작업할 수 있다. 대표적인 git hosting에는 github, gitlab이 있다. GitHub: Where the world builds software GitHub is where over 56 million de..
이전 글에서 설명한 context swith를 줄이기 위해서 필요한 것이 thread이다. 프로세스와 thread 프로세스가 하는 일은 자원을 할당받고, 그 자원을 제어하여 목적을 달성하는 것이다. 프로세스를 자원과 제어로 나누어 볼 때, 제어만을 분리하여 본 것을 thread라고 할 수 있다. 하나의 프로세스 안에 여러 개의 thread (제어) 가 있을 수 있다. 프로세스는 여러 자원을 할당받을 수 있고, 그 자원들을 제어하는 thread가 여러 개인 것이다. Process = resource + 제어 resource 코드 데이터 힙 - 코드 : PC가 가리키는 그 곳 - 전역 데이터 : 작업을 하기 위한 데이터 - 힙 : 프로세스가 사용하는 메모리 공간이 있다. 제어 - 제어 정보 : PC(프로그램..
간단하게 넘어갔던 프로세스에 대해 자세히 알아보자. Windows 작업 관리자를 보면 프로세스들을 쉽게 볼 수 있다. 먼저 작업과 프로세스를 구별해보자. 작업 (Job) / 프로그램 (Program) - 실행할 프로그램 + 데이터 - 디스크에 보관이 되어 있는 상태로 컴퓨터 시스템에 실행 요정 전의 상태 프로세스 (Process) - 프로그램을 실행해 달라는 요청에 의해 프로그램이 시스템(커널)에 등록된 상태를 가진다. - 시스템 성능을 향상시키기 위해 커널에 의해 관리된다. - 프로그램이 시스템에 등록되어 메모리를 할당 받는다면 프로세스라고 할 수 있다. - 각종 자원들을 요청하고 할당 받을 수 있고, 프로세스 관리 블록(PCB)을 할당받을 수 있다. - 실행 중에 각종 자원을 요구, 할당, 반납하면서..
이전 글에서 설명했듯이, 운영체제란 컴퓨터 시스템 자원(하드웨어)를 효율적으로 관리하여 사용자 또는 응용 프로그램에게 서비스를 제공하는 소프트웨어이다. 이 글에서는 운영체제의 역할, 구분, 구조, 기능에 대해서 살펴볼 것이다. 1. 운영체제의 역할 1. User Interface (편리성) 사용자가 시스템을 편리하게 사용할 수 있도록 편리성을 제공한다. 과거에는 문자를 기반으로 사용자가 입력하고, 결과도 문자로 받는 CUI를 사용하였다. 현재에는 그림 형태로 되어 있는 GUI를 사용한다. 특별한 목적을 위해 만들어진 기기는 그 사용자가 편리하게 사용할 수 있도록 EUCI를 사용한다. 2. Resource management (효율성) 주어진 자원을 잘 활용하여 서비스를 효율적으로 제공한다. HW reso..
우리가 게임을 하기 위해 필요한 것은 무엇일까? 일단 컴퓨터가 필요할 것이다. 그 안에는 CPU + GPU + MEMORY + SSD/HDD + LAN 등 다양한 하드웨어들이 있다. 이들을 효율적으로 활용할 수 있도록 도와주는 것이 운영체제 (Operating System)이다. 운영체제란? 컴퓨터 시스템 자원(HW)를 효율적으로 관리하여, 사용자에게 서비스를 제공하는 소프트웨어이다. 운영체제가 관리할 컴퓨터 하드웨어는 크게 3가지가 있다. 1. 프로세서 연산하는 장치이다. CPU, GPU 등이 있다. 응용 전용 처리 장치 2. 메모리 DRAM, DISK과 같이 저장하는 장치이다. 주기억장치 보조기억장치 3. 주변장치 키보드/마우스와 같은 입력 장치 모티너, 프린터와 같은 출력 장치 네트워크 모뎀 등 위..