CS

CS/OS

[OS] 데드락 (Deadlock , 교착 상태)

데드락(Deadlock, 교착 상태)란 ? 운영체제에서 데드락(교착상태)이란, 시스템 자원에 대한 요구가 뒤엉킨 상태로 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한대기에 빠지는 상황을 말한다. 데드락 발생 조건 상호 배제(Mutual Exclusion) : 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 점유 대기(Hold and Wait) : 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점(Non-Preemption) : 이미 할당된 자원을 강제로 빼앗을 수 없다. 순환 대기(Circular Wait) : 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다. 데드락 해결 방법 데..

CS/OS

[OS] 스레드 (Thread)

스레드(Thread) 란 ? 스레드란 프로세스 내에서 실행되는 흐름의 단위 혹은 CPU 스케줄링의 기본 단위라고 할 수 있다. 프로세스 하나만을 사용하여 프로그램을 실행하기에는 메모리의 낭비가 발생하는데 스레드는 프로세스와 다르게 스레드 간 메모리를 공유하며 작동한다. 스레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 시퀀스이다. 하나의 프로세스는 하나 이상의 스레드를 갖고 있다. 스레드의 특징은 다음과 같다. 스레드는 각자 자신의 Stack 영역을 보유한다. 스레드는 프로세스 내에서 Code, Data, Heap 영역을 공유한다. 스레드를 생성하고 switching 하는 것은 inexpensive 하다. 스레드와 프로세스의 차이 프로세스는 각자 프로세스간 통..

CS/OS

[OS] 프로세스와 PCB

프로세스 (Process) 프로그램이 실행된다는 것은 해당 코드가 메모리에 올라와 작업이 진행된다는 의미이다. 흔히 프로그램이 실행되면 프로세스가 된다는 표현을 하는데 프로그램은 저장장치에 저장되어 있는 정적인 상태, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태이다. 즉, 프로그램이 실행되면 이것은 프로세스라고 불린다. 프로세스로의 전환 먼저 운영체제는 프로그램을 메모리의 적당한 위치로 가져오며 PCB(Process Control Block)라는 제어 블록을 생성한다. PCB에는 프로세스 실행에 필요한 여러가지 정보가 담겨있는데, 쉽게 이야기 하자면 프로세스는 요리를 만드는 과정이고 PCB는 요리를 만들 때 고려할 사항들을 적어놓은 주문서라고 볼 수 있다. 어떤 프로그램이 프로세스가 되었다는 것은..

CS/DataBase

[DataBase] RDBMS vs NoSQL

관계형 데이터베이스 - SQL SQL은 '구조화 된 쿼리 언어'의 약자로 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는데 사용 하는 쿼리 언어이다. SQL을 이용하면 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 데이터는 정해진(엄격한) 데이터 스키마를 따라 데이터베이스 테이블에 저장된다. 데이터는 관계를 통해 여러 개의 테이블에 분산된다. 엄격한 스키마 데이터는 테이블에 레코드로 저장되며, 각 테이블에는 명확하게 정의된 구조가 있다. 구조란 ? : 어떤 데이터가 테이블에 들어가고 어떤 데이터가 그렇지 않을지를 정의하는 필드 집합을 가르킨다. 관계형 데이터베이스에서 스키마를 준수하지 않는 레코드는 추가할 수 없다. ..

엥재
'CS' 카테고리의 글 목록 (3 Page)