CS 전공 25

[전자회로] 1. 기초 반도체 물리 (1)

1. 반도체 물질 및 성질1. 고체에서의 전하 캐리어원자의 화학적 성질은 최외각 궤도에 있는 전자에 의해 결정되며, 여기에서의 전자는 원자가 전자라고 불린다. 여기서는 실리콘 (Si)의 개념이 많이 나온다.공유 결합위에서 나온 Si를 예로 들자면, 실리콘 원자는 4개의 원자가 전자를 가진다. 따라서 완전한 궤도를 이루기 위해선 4개의 추가 원자가 전자가 필요하다. 정상적으로 반응하면 '수정'을 형성하는데, 각 원자는 똑같은 4개의 다른 원자를 이룬다. 이 원자가 만나면 공유 결합이 일어난다. (최외각 전자 공유)이 수정은 절대 온도 0K 부근에서는 부도체로 동작하나, 온도가 올라갈수록 자유 전하 캐리어로 동작한다.정공공유결합이 깨지면 전자는 구멍을 남기는데, 이러한 구멍을 정공이라고 한다. 정공은 자유 ..

[AI] 1. MNIST를 이용한 딥러닝 - 데이터셋 불러오기

MNIST 데이터셋을 불러오는 방법은 다음과 같다.1) Keras에 내장된 데이터셋 불러오기keras에서 데이터셋을 불러오기 위해서 다음과 같이 입력한다.import tensorflow as tffrom tensorflow import kerasimport numpy as npimport matplotlib.pyplot as pltmnist = keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data() 시험 삼아 데이터셋의 3번째 글씨를 가져와봤다.plt.imshow(x_train[2], cmap=plt.cm.binary)plt.show() 그러면 다음과 같이 잘 나온다.2) Kaggle에서 가져와 경로로 데이터를 불러오기우선..

CS 전공/AI & ML 2024.07.01

[운영체제] 12. 파일 시스템

1. 저장장치1) 파일1. 사용자나 응용 프로그램의 관점에서 : 정보를 저장하고 관리하는 논리적인 단위2. 컴퓨터 시스템의 관점에서 : 정보를 저장하는 컨테이너, 0과 1의 데이터 덩어리 운영체제의 중요한 역할 중 파일 시스템도 중요하다.- 파일 생성, 기록, 읽기 등 모든 과정을 통제한다.- 응용 프로그램은 운영체제 모르게 파일 다루기가 불가능하다. 파일은 어디에 저장되나?1) 자기장 기반하드디스크, 플로피 디스크자기 테이프2) 반도체 기반SSDUSB, 플래시 메모리3) 광학CD, DVD2) 자기장 기반 방식- 종류에는 자기 테이프, 플로피 디스크, 하드 디스크 등이 있다고 하였다.- 저장 매체 위에 자기장에 반응하는 물질을 발라두고 헤드를 이용해 특정 위치의 값을 읽어온다.- 자기장이 변화하면 유도 ..

CS 전공/OS 2024.06.24

[운영체제] 11. Demand Paging

1. 물리 메모리와 가상 메모리1) 주소 공간과 물리 메모리컴퓨터에 설치할 수 있는 물리 메모리에도 한계가 있다. -> 물리 메모리는 CPU의 주소 버스 크기에 달려 있기 때문이다. 32비트 CPU의 최대 물리 메모리의 양은 4GB, 64비트 CPU의 최대 물리 메모리 양은 16EB이다. 하지만 컴퓨터의 실제 물리 메모리는 CPU의 최대 메모리에 미치지 못한다. 비용이 많이 들기 때문이다. 현재 대부분의 컴퓨터의 물리 메모리 양은 8GB ~ 32GB이다. 또한, 프로세스는 자신이 최대 용량을 독점한다고 생각한다. 이러면 어떠한 문제가 발생할까?2) 물리 메모리의 한계물리 메모리의 한계에서 얻을 수 있는 질문은 다음과 같다.1) 설치된 물리 메모리보다 더 큰 프로세스를 실행시킬 수 있는가?2) 프로세스들을..

CS 전공/OS 2024.06.23

[운영체제] 10. 페이징

1. 페이징의 개요1) 연속 메모리와 Segmentation 기법의 단점- 프로그램이 한 두 개 이상이면 문제가 발생Segment의 크기가 클 경우 메모리 할당이 가면 갈수록 어려워진다.관리 자체가 더 힘들다 -> 검색 효율이 저하되며 메모리 운용 속도도 저하된다.-> 이와 같은 문제로 페이징 기법이 등장했다.2) 페이징이란?- 고정 - 분할 방식을 이용한 가상 메모리 관리 기법이다.- 프로세스의 주소 공간을 0번지부터 동일한 크기의 페이지로 나눈다.- 물리 메모리도 역시 0번지부터 페이지 크기로 나누고 프레임이라 부른다.- 페이지의 크기는 주로 4KB이다.- 페이지 테이블은 각 페이지에 대해 페이지 번호와 프레임 번호를 1:1로 저장하는 테이블이다.3) 페이징의 장점1. 용이한 구현 : 고정 크기로 단..

CS 전공/OS 2024.06.23

[운영체제] 9. 메모리 관리

그동안 운영체제를 CPU의 관점으로 봐왔다. 이번에는 프로그램을 관리하는 장소인 메모리에 대해 알아볼 시간이다.1. 메모리 관리1) 메모리 관리가 필요한 이유1. 메모리는 공유 자원이기 때문이다.- 여러 프로세스 사이에 메모리가 공유되고 각 프로세스에게 물리 메모리를 할당한다.2. 메모리를 보호해야 한다.- 프로세스의 독립된 메모리 공간을 보장하고 다른 프로세스로부터 메모리 공간을 보호해야 한다.- 사용자 코드로부터 커널 공간을 보호해야 한다.3. 메모리 용량 한계를 극복해야 한다.- 설치된 무리 메모리보다 큰 프로세스의 지원이 필요할 때가 있다.4. 메모리의 효율성을 증대시킬 수 있다.- 가능한 많은 개수의 프로세스를 한 번에 실행시키는 것이 좋다. 또한, 프로세스 당 최소한의 메모리로 할당한다.2) ..

CS 전공/OS 2024.06.23

[운영체제] 8. 교착상태

1. 교착상태1) 교착상태의 정의자원을 소유한 채, 모두 상대방이 소유한 자원을 기다리면서 무한 대기에 빠지는 상태이다. 교착상태하면 항상 나오는 문제로 식사하는 철학자 문제가 있다.2. 식사하는 철학자 문제1) 식사하는 철학자 문제조건은 다음과 같다.1. 5명의 철학자가 원탁에서 식사한다.2. 자리마다 스파게티 1개와 양 옆에 포크가 있다.3. 식사를 하기 위해서는 양 옆의 포크가 동시에 들려야 한다.4. 왼쪽 포크를 먼저 들고 다음 오른쪽 포크를 드는 순서이다. 저 조건이라면 누구 한 명은 식사를 할 수 없다..! 그럼 왜 못하는 걸까..? 원인 : 환형 요청/대기 : 원으로 앉아 있기에 스스로 해체 불가능하다.해결 : 원형 상태로 안 만들면 되지!2) 컴퓨터 시스템에서의 교착 상태식사하는 철학자의 ..

CS 전공/OS 2024.06.23

[운영체제] 7. 프로세스와 쓰레드의 동기화 (Synchronization)

1. IPC (Inter - Process Communication) 일단 프로세스 간의 통신을 봐봅시다. 원래 원칙상으로는 프로세스끼리 통신은 힘들다. 프로세스끼리의 간섭을 없애기 위해 서로의 영역을 침범하지 않기 때문이다. 따라서, 쓰레드 간의 통신을 이용하여 프로세스끼리 통신을 한다. 하지만 프로세스끼리 통신은 필수이다. 당연하다. 우리가 컴퓨터 프로그램을 쓰면서 크롬만 켜지는 않을 것이다. 카카오톡도 켜고 동영상 강의도 틀고 op.gg도 켜고  아무튼 다양한 프로그램을 쓰기 때문이다. 또 어떤 컴퓨터 프로그램은 여러 프로세스로 구성이 되기에 프로세스간 통신은 필수이다. 그렇다면 프로세스의 종류는 뭐가 있을까? 1) IPC의 종류1. 프로레스 내부 데이터 통신 (== 쓰레드)- 하나의 프로세스 내에..

CS 전공/OS 2024.06.23

[데이터베이스] 11. 보안과 권한 관리

1. 보안1. 데이터베이스 보안의 목표데이터베이스에는 다양한 데이터가 저장이 되어 있으므로, 보안에 유의해야 한다. 조직에서 허가한 사용자만 데이터베이스에 접근할 수 있도록 통제하여 보안을 유지하는 것이다.I. 물리적 환경에 대한 보안: 자연 재해처럼 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 데이터베이스를 보호한다.II. 권한 관리를 통한 보안: 접근이 허락된 사용자만 권한 내에서 데이터베이스를 사용하도록 보호한다.III. 운영 관리를 통한 보안: 접근이 허락된 사용자가 권한 내에서 데이터베이스를 사용하는 동안 데이터 무결성을 유지하도록 제약 조건을 정의하고 위반하지 않도록 통제한다.2. 권한 관리1. 권한 관리의 개념1. 접근 제어 : 계정이 발급된 사용자가 로그인에 성공했을 경우에만 DB에..

CS 전공/DB 2024.06.10

[데이터베이스] 10. 인덱스

1. 인덱스의 개요1. 인덱스의 개념 및 문제점 우리가 전공서를 보다 보면 뒤에 인덱스라고 단어가 굉장히 많이 나와있는 것을 볼 수 있다. 우리가 어떤 단어가 무슨 페이지에 있는지 알기 위해 인덱스를 주로 사용하는데, 데이터베이스에서 인덱스도 이와 같은 내용이다. 한마디로 인덱스는 '데이터를 좀 더 빨리 찾을 수 있는 도구'라고 볼 수 있다. 이 말은 즉, 검색 속도가 빨라진다는 것이다.  하지만, 인덱스에도 단점이 있다. 우리가 전공서에 모든 단어를 뒤에 인덱스에 집어넣게 된다면 책의 분량이 엄청나게 많아진다. 완전 극단적으로 생각하자면, 인덱스가 더 많아지면 본문보다 인덱스가 더 많아진다는 이상한 상황이 될 수 있다는 것이다. 이는 즉, 쓸데없이 차지하는 공간만 늘어나고 쓰지를 않는다는 것이다. 이렇..

CS 전공/DB 2024.06.08