운영체제란? 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어이다. 혹은 컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어라고도 한다. OS 와 Application 사용자 프로그램(Application)은 특정 운영체제에 맞춰서 만든다. 그러므로 한 어플리케이션은 서로 다른 운영체제에서 수행할 수 없다. 예를 들면 Windows에서 수행하는 프로그램을 그대로 Linux에 옮기면 수행되지 않는다. 애플리케이션은 하드웨어 자원을 직접적으로 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다. 운영체제의 종류 운영체제의 종류에는 Windows 98, Windows10, UNIX, LINU..
운영체제 DEAD LOCK(교착상태) 에 대해서 알아보자 교착상태란? DEAD LOCK 즉, 교착상태란 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 즉, 무한히 다음 자원을 기다리게 되는 상태를 말한다. 쉽게 말해 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 책에서는 쉬운 예로 Dining philosophers problem( 식사하는 철학자 문제)를 예로 든다. 5명의 철학자가 원탁에 앉아서 식사를 한다. 철학자들 사이에는 포크가 하나씩 놓여 있고, 철학자들은 다음의 과정을 통해 식사를 한다. 1. 일정 시간 생각을 한다. 2. 왼쪽 포크가 사용 가능해질 때까지 대기한다. 만약 사용 가능하다면 집어든다. 3. 오른쪽 포크가 사용 가능..
REST 란 ? REpresentational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. 즉, 자원의 표현에 의한 상태전달이다. HTTP URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미하고 기본적으로 웹의 기존 기술과 HTTP Protocol을 그래도 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이며, 네트워크 상에서 Client 와 Server사이의 통신 방식 중 하나이다. CRUD Operation Create : 생성(POST) Read : 조회(GET) Update : 수..
프로세스란? 프로그램이 실행되면 프로세스 인스턴스가 생성된다. 인스턴스가 생성된다는 의미는 프로그램 실행에 필요한 내용이 컴퓨터 메모리(RAM)에 적재된다는 뜻이다. 일반적으로 프로세스와 프로그램을 같은 개념으로 이야기하는 경우도 많은데 이는 엄밀히 다른 개념이다. 프로그램 : 어떤 작업을 하기 위해 실행할 수 있는 파일 또는 프로그램이다. = 정적인 상태 Ex) 카카오톡, 그림판, 크롬 즉, 어떠한 일을 위해 실행할 수 있는 파일을 뜻한다. 프로세스 : 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태이다. = 동적인 상태 즉, 일을 처리하는 일련의 과정을 뜻한다. 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적(動的)인 상태라고 하며 이 상태..