[운영체제] 리눅스(Linux)와 유닉스(Unix) 비교하기
·
CS/운영체제
리눅스와 유닉스는 둘 다 컴퓨터 운영체제(OS)이며, 서로 매우 밀접한 관계를 맺고 있다. 간단히 말하면 유닉스는 원조이고, 리눅스는 유닉스를 기반으로 새롭게 탄생한 운영체제라고 할 수 있다. 유닉스(Unix) 유닉스는 1960년대 후반에 AT&T의 벨 연구소에서 개발된, 현대적인 운영체제의 시초라고 할 수 있다. 주요 특징 대화식 운영체제 : 사용자와 시스템이 끊임없이 소통하며 작업을 처리하는 방식 멀티 유저 : 여러 명의 사용자가 하나의 컴퓨터 시스템에 동시에 접속하여 각자 독립적으로 작업을 수행할 수 있다. 멀티 태스킹 : 한 명의 사용자가 동시에 여러 개의 프로그래밍(작업)을 실행할 수 있다. 계층적 파일 시스템 : 파일과 폴더를 나무 구조처럼 계층적으로 관리할 수 있다. 높은 호환성 : 특정 ..
[운영체제] 프로세스(Process) 와 스레드(Thread)
·
CS/운영체제
프로그램 (Program) 프로세스를 알아보기 전에, 프로그램은 많이들 들어봤을 것이다. 프로그램은 윈도우의 `*.exe` 파일이나 Mac의 `*.dmg` 파일과 같은 컴퓨터에서 실행할 수 있는 파일을 통칭한다. 아 그렇지만, 아직 파일을 실행하지 않은 상태를 통칭한다. 어떠한 프로그램을 개발하기 위해서는 프로그래밍 언어를 이용해 코드를 작성하는데, 프로그램은 그냥 코드 덩어리이다. 프로세스 (Process)프로그램이 그냥 코드 덩어리라면, 프로세스는 프로그램을 실행시켜서 정적인 프로그램이 동적으로 변하여 프로그램이 돌아가고 있는 상태를 말한다. 즉, 컴퓨터에서 작업 중인 프로그램을 의미한다. 우리는 위에 사진과 같이 '작업 관리자'를 열어보면 지금 실행 중인 프로그램들을 볼 수 있다. 모든 프로그램은..
[운영체제] 동기 vs 비동기 그리고 블로킹 vs 논블로킹
·
CS/운영체제
들어가며개발을 하면서, 동기/비동기 그리고 블로킹/논블로킹에 대해서 들어본 경험이 있을 것이다. 이번 포스트에서는 이 개념들에 대한 설명을 해보고자 한다. 일단 동기/비동기 그리고 블로킹/논블로킹은 굉장히 비슷한 형태라고 생각이 될 수도 있다. 그러나, 서로 다른 차원에서의 작업 수행 방식을 설명하는 개념이다. 동기/비동기는 요청한 작업에 대해 완료 여부를 신경써서 작업을 순차적으로 수행할지 아닌지에 대한 관점이고블로킹/논블로킹은 단어 그래도 현재 작업이 block(차단,대기) 되느냐 아니냐에 따라 다른 작업을 수행할 수 있는지에 대한 관점이다. 조금 더 자세히 알아보자.동기(Synchronous) vs 비동기(Asynchronous) 동기 (Synchronous) : 요청한 작업에 대해 완료 여부를 ..