일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트
- VUE
- CS
- 리액트
- react
- 백준
- Doitvue.js입문
- 동적계획법
- Level1
- Medium
- OS
- 웹프로그래밍
- LeetCode
- 파이썬
- 리트코드
- C++
- python
- 프로그래밍
- typescript
- web
- javascript
- dp
- 프로그래머스
- 배열
- Level3
- Level2
- 고득점Kit
- sql
- 코테연습
- 카카오
- Today
- Total
목록CS (27)
운영체제란 운영체제란 응용프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어를 말한다. 컴퓨터의 하드웨어 바로 윗단에 설치된다. 운영체제는 컴퓨터 내의 자원을 효율적으로 관리하는 것(자원 관리)와 추상화된 인터페이스를 통해 쉽게 프로그램을 사용할 수 있도록 (시스템 관리)하는 주요 기능을 가진다. 이 때 자원은 하드웨어와 소프트웨어를 통틀어 말한다. 운영체제는 자원 관리자라고 불리며 커널 함수를 실행하면서 스위칭한다. 기능 프로세스 관리 운영체제에서 작동하는 응용프로그램을 관리하는 기능 CPU를 점유해야할 프로세스를 결정하고, 할당하며 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다. 프로세스 스케줄링 및 동기화 프로세스 생성 제거, 시작과 정지 스케줄링..
캐시 Cache 캐시 메모리는 속도가 빠른 장치와 느린 장치 간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리이다. 이러한 역할을 수행하기 위해서는 CPU에 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야한다. 캐시의 성능은 작은 용량의 캐시 메모리에 CPU가 이후에 참조할, 쓸모 있는 데이터가 얼마나 들어 있느냐에 따라 좌우된다. CPU와 주기억장치의 속도 차이로 성능 저하를 방지하기 위해 주기억 장치에 저장된 내용의 일부를 임시로 저장해둔다. CPU와 상호작용 CPU에서 주소가 전달되면 캐시 메모리에 해당 데이터가 존재하는지 확인한다. HIT (존재) : 해당 명령어를 CPU로 전송한다. Miss (비존재) : 명령어를 가지고 주기억장치에 접근하여 해당 명령어를 가진 데이터를 꺼내서..
가상메모리 다중 프로그래밍을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야한다. 가상 메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이며, 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있다. 배경 실행되는 코드의 전부를 물리 메모리에 존재시켜야했고, 메모리 용량보다 큰 프로그램은 실행시킬 수 없었다. 프로그램의 일부분만 메모리에 올릴 수 있다면 CPU의 용량보다 큰 프로세스를 실행할 수 있다. 더 많은 프로그램을 동시에 실행할 수 있게 된다. 응답시간은 유지되고, CPU 이용률과 처리율은 높아진다. swap에 필요한 입출력이 줄어들기 때문에 프로그램들이 빠르게 실행된다. 하는 일 가상 메모리는 실제 물리 메모리 개념과 사용자의 논리 메모리 개념을..
메인메모리 주소 바인딩 MMU 기억장치 할당 방식 연속 할당 단일 분할 할당 다중 분할 할당 가변 길이 할당 균등 고정 분할 방식 비균등 고정 분할 방식 불연속 할당 분산 할당 페이징 세그먼트 메모리 관리 각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다. 단지, 운영체제만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. 요구되는 역할은 allocation, relocation, protection, sharing이다. 메인 메모리 메인 메모리는 CPU가 직접 접근할 수 있는 기억 장치이다. 프로세스가 실행되려면 프로그램이 메모리에 올라와야 한다. CPU는 레지스터가 지시하는대로 메모리에 접근하여 다음에 ..
DDL (Data Define Language) : 데이터 정의어 DDL은 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다. CREATE ALTER DROP DML(Data Manipulationo Language): 데이터 조작어 DML은 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어이다. SELECT INSERT DELETE DCL(Data Control Language): 데이터 제어어 DCL은 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어이다. COMMIT ROLLBACK GRANT REVOKE
인덱스 인덱스란? 데이터 레코드를 빠르게 접근하기 위해 쌍으로 구성되는 데이터 구조이다. DBMS의 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 탐색하는데는 빠르지만 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려진다. DBMS에서 인덱스는 데이터의 저장 성능을 희생하고 그 대신 데이터의 읽기 속도를 높인다 데이터가 저장된 물리적 구조와 밀접한 관계가 있다. 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다. 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적이다. 인덱스가 없으면 특정한 값을 찾기 위해 모든 데이터 페이지를 확이하는 TABLE SCAN이 발생한다. DDL을 이용해 사용자가 생성, 변경, 제거할 수 있다. 기..
트랜잭션 트랜잭션이란? 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야할 일련의 연산들을 의미한다. 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능으로 작업의 완전성을 보장해준다. 작업의 논리적 단위 또는 데이터들을 접근 또는 변경하는 프로그램의 단위가 된다. 트랜잭션과 Lock 잠금은 동시성을 제어하기 위한 기능이고 트랜잭션은 정합성을 보장하기 위한 기능이다. 잠금은 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할을 한다. 특성 ACID Atomicity 원자성 트랜잭션..
정규화 왜? 한 릴레이션에 여러 엔티티의 어트리뷰트들을 혼합하게 되면 정보가 중복 저장되며, 저장 공간을 낭비하게 된다. 또 중복된 정보로 인해 갱신 이상이 발생하게 된다. 동일한 정보를 한 릴레이션에는 변경하고, 나머지 릴레이션에서는 변경하지 않은 경우 어느 것이 정확한지 알 수 없게 되는 것이다. 이러한 문제를 해결하기 위해 정규화 과정을 거친다. 이상(Anomaly)의 개념 및 종류 삽입 이상(Insetion Anomaly) : 릴레이션에 데이터를 삽입할 때 의도와는 상관 없이 원하지 않는 값들도 함께 삽입되는 현상 삭제 이상(Deletion Anomaly) : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관 없는 값들도 함께 삭제되는 연쇄가 일어나는 현상 갱신 이상(Update Anomaly) :..