CS 지식22 프로세스(Process)와 스레드(Thread)의 차이 프로세스(Process) : 운영체제로부터 자원을 할당받는 작업의 단위로, 코드의 집합으로 이루어진 프로그램이 실행되는 것이다. ex) 컴퓨터를 키고 깃허브와 티스토리에 접속하는데 이는 각각의 프로세스를 실행하는 것 프로세스는 각각 독립된 메모리 영역(code, data, stack, heap)을 할당받는다. 프로세스당 최소 1개의 스레드를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 스레드(Thread) : 프로세스가 할당받은 자원을 이용하는 실행단위로, 프로세스 내에 여러 개가 생길 수 있다. 스레드는 프로세스 내에서 각각 stack만 따로 할당받고 code, data, heap 영역은 공유한다. 같은 프로세스 안에있는.. 2023. 1. 15. SQL 과 NoSQL 의 차이 SQL (Structured Query Language) : SQL 은 RDBMS(관계형 데이터베이스 관리 시스템) 의 데이터를 관리하기 위해 설계된 프로그래밍 언어로, NoSQL 보다 오래전부터 사용되어 왔으며 MySQL, PostgreSQL 등이 있다. SQL 에서는 엄격한 스키마(데이터 저장 구조)를 원칙으로 하기 때문에 스키마에 맞지 않는 형식의 데이터는 저장할 수 없다. SQL 은 데이터 사이의 관계를 지정하기 쉬워 각 테이블 간의 관계 지정을 통해 테이블에 접근할 수 있고, 중복 없이 해당 데이터만을 다룰 수 있다. SQL 은 일반적으로 수직정 확장(vertical scale)만을 지원해서, 하드웨어를 업그레이드 하거나 추가하여 서버의 성능을 향상시킬 수 있다. NoSQL(Not Only St.. 2023. 1. 8. 교착상태(Dead Lock) 교착상태(Dead Lock) : 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무기한으로 기다리는 현상 교착상태 발생의 필요 충분 조건 : 교착상태가 발생하기 위해서는 아래의 네 가지 조건이 모두 충족되어야 하고, 하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 상호 배제(Mutual Exclusion) : 한번에 한 개의 프로세스만이 공유 자원을 사용해야 한다. 점유와 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기중인 프로세스가 있어야 한다. 비선점(Non-preemption) : 다른 프로세스에 할당된 자.. 2023. 1. 8. 트랜잭션(Transaction) 트랜잭션(Transaction) : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 하는 일련의 연산들을 의미한다. 데이터의 상태를 변경시킨다는 것은 SELECT, UPDATE, INSERT, DELETE 의 질의어를 통해 접근하는 것을 의미 트랜잭션의 특징 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태변환 과정의 작업단위이다. 하나의 트랜잭션은 Commit 되거나 Rollback 된다. 트랜잭션의 성질 1. 원자성(Atomicity) 트랜잭션의 연산은 데이터베이스에 모두 반경되거나 전혀 반영되지 않아야 한다. 트랜잭션 내의 .. 2023. 1. 2. 이전 1 2 3 4 5 6 다음