Computer Science3 [CS] 프로세스와 쓰레드 프로세스란? - 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. - 수행 중인 프로그램 - 수행 중인 프로그램의 인스턴스 - 수행되어야 할 명령들의 활성화 단위 - 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 및 쓰레드로 구성되어 있다. 쓰레드란? - 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 프로세스가 가질 수 있는 쓰레드의 개수는? - 하나의 프로세스는 가질 수 있는 쓰레드의 개수는 제한되어 있지 않지만 쓰레드가 작업을 수행하는 메모리공간이 필요하기 때문에 프로세스의 메모리 한계에 따라서 생성할 수 있는 쓰레드의 수가 정해진다. 싱글 쓰레드와 멀티 쓰레드의 차이 ex) 채팅 서비스 싱글 쓰레드 - 싱글 쓰레드의 경우 하나의 쓰레.. 2023. 1. 14. [CS] 트랜잭션이란? 트랜잭션이란? 데이터베이스의 상태를 변환시키기 위해 수행하는 작업의 단위 트랜잭션 ACID 1. 원자성 트랜잭션 내에서 실행한 작업들은 하나의 작업과 같이 모두 성공하든가 모두 실패해야 한다. 2. 일관성 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 3. 고립성 하나의 트랜잭션의 실행은 동시에 실행중인 다른 트랜잭션들의 간섭을 받아선 안된다. 4. 지속성 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야한다 이상현상 1. 삽입이상 튜플 삽입 시 특정 속성에 해당 하는 값이 없어 NULL이 들어가는 현상 2. 수정이상 튜플 수정 시 중복된 데이터의 일부만 수정되어 일어나는 데이터 불일치 현상 3. 삭제이상 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현.. 2023. 1. 6. [CS] 알고리즘 선택 정렬 현재 데이터의 상태와 상관없이 무조건 모든 원소를 비교하고 위치를 바꾼다. O(N^2)의 시간 복잡도를 가진다. 삽입 정렬 특정한 데이터를 적절한 위치에 삽입한다는 의미로 특정한 데이터가 적절한 위치에 들어가기 이전에 그 앞까지의 데이터는 이미 정렬되어 있다고 가정한다. 두번째 데이터부터 시작한다. 왜냐하면 첫번째는 정렬되어 있다고 판단하고 시작하기 때문 정렬이 이루어진 원소는 항상 오름차순을 유지하고 있다. 삽입 정렬에서는 특정한 데이터가 삽입될 위치를 선정할 때 삽입될 데이터보다 작은 데이터를 만나면 그 위치에서 멈추면 된다. O(N^2)의 시간 복잡도를 가진다. 거의 정렬된 상태라면 최선의 경우 O(N)의 시간 복잡도를 가진다. 퀵 정렬 대부분 프로그래밍 언어의 정렬 라이브러리의 근간이 .. 2022. 12. 30. 이전 1 다음