두 개 이상의 작업이 서로 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 못하는 상태를 가리킨다.
예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다. 이때 아래에 있는 사람은 위로 올라가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이,
전산학에서 교착상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제다 - 위키백과 교착상태
위키백과에서 예를 들어서까지 잘 설명해놓았네요.
교착상태가 일어나려면 아래와 같은 4가지 조건들이 필요합니다.
상호배제– 프로세스들이 자원을 배타적 점유한다.
점유와 대기 – 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.
비선점 – 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.
환형 대기 – 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.
우선 교착상태를 막는 것은 아직 불가능합니다..
하지만 다음과 같은 방법들로 대응을 하고 대부분의 접근들은 4가지 조건들 가운데 하나(특히 환형 대기)를 막음으로써 동작합니다.
유닉스(영어:Unix)는 교육 및 연구 기관에서 즐겨 사용되는 범용 다중 사용자 방식의 시분할운영 체제이다.[1]1970년대 초반벨 연구소직원인켄 톰슨,데니스 리치등이 처음 개발하였다. 오늘날의 유닉스 시스템은 여러 회사들과 비영리 단체들이 이 커널로 활용하여 다양한 운영체제를 개발하고 있다.
유닉스는 처음부터 다양한 시스템 사이에서 서로 이식할 수 있고,멀티 태스킹과다중 사용자를 지원하도록 설계되었다. 유닉스 시스템은 다음과 같은 개념을 가지고 있다.
일반 텍스트 파일,명령행 인터프리터, 계층적인파일 시스템, 장치 및 특정한 형식의 프로세스 간 통신을 파일로 취급 등.
엄밀하게 따지면 이 ‘리눅스’라는 용어는리눅스 커널만을 뜻하지만, 리눅스 커널과GNU프로젝트의 라이브러리와 도구들이 포함된, 전체 운영 체제(GNU/리눅스라고도 알려진)를 나타내는 말로 흔히 쓰인다.리눅스 배포판은 핵심 시스템 외에 대다수 소프트웨어를 포함한다. 현재 200여 종류가 넘는 배포판이 존재한다.
-위키백과
우선 리눅스, 유닉스 모두 OS 입니다.(OS = 운영체제, 대표적인 운영체제로는 Windows가 있습니다.)
그리고 각 특징을 간단히 설명하면
유닉스는 서버에 특화된 운영체제입니다.
리눅스는 유닉스에서 파생된 운영체제입니다.
유닉스는 서버에 특화된 운영체제이기 때문에 포털이나 대기업의 서버에 사용되며 보안성이 매우 뛰어납니다.
리눅스의 장점은 리눅스 운영체제 소스코드를 무료로 배포했다는 점입니다.
이를 통해 레드햇, 우분투 같은 다양한 리눅스 배포판이 나타났습니다.
대표적인 리눅스 : Ubuntu, RedHat
대표적인 유닉스 : Oracle Solaris
이제 세부 특징을 살펴보겠습니다.
리눅스는 오픈 소스이기 때문에 버그가 발생하면 많은 기관, 사용자들이 나서서 보완합니다.
따라서 커뮤니티 활성화되어 있어서 정보를 얻기에 용이합니다.
리눅스를 공부하다 보면 커널(kernel)과 쉘(Shell)이 나옵니다.
리눅스 커널- 파일 입출력, 주변 장치 관리, 프로세스 관리, 통신 관리, 메모리 관리 등의 리눅스 운영체제의 기능을 담당
리눅스 쉘 - 사용자와 OS 간의 중계역할 즉, 명령어 처리기 역할을 수행
더욱 쉽게 풀어서 설명하면 커널은 하드웨어 제어를 담당합니다.
윈도우의 드라이버처럼 HW, SW사이를 연결해주는 인터페이스를 제공하고
CPU, 메모리 제어, 보조기억장치에 파일을 저장, 읽어오는 역할을 합니다.
쉘은 이 커널을 조작하기 위한 수단입니다.
자주 사용되는 쉘은 bash, sh, csh 등이 있습니다.
유닉스는 운영체제 코드가 공개되어있지 않아 버그 이슈 같은 경우 IBM사에서 일괄 관리합니다.
가격적인 측면에서는 당연히 유닉스 가격이 비쌉니다.
여기서 같은 운영체제인 윈도우랑 비교를 해보면
윈도우는 상대적으로 신뢰성이 낮습니다. 따라서 해킹이나 버그가 많죠.
또한 윈도우는 대량의 네트워크 부하를 감당하지 못하기 때문에 네트워크 솔루션으로 적합하지 않습니다.