패스트캠퍼스 61

시스템 프로그래밍 - 오리엔테이션&리눅스

패스트캠퍼스 - 컴퓨터공학전공 시스템프로그래밍 시작 시스템 프로그래밍 과목 OT * 실전 리눅스/운영체제 고급 활용 •리눅스 OS - 인터넷 서비스 서버 환경 익히기, 고급 운영체제 기능 직접 제어, UNIX 계열 OS 사용법 익히기 * 선수과목 c언어, 자료구조, 컴퓨터 구조, 운영체제 * 학습 방법 실제 실습 (직접 작성해볼 것) 조금씩 수정해가면서 다른 결과를 보면 이해도가 높아질 수 있음 운영체제 강의에서 다루었던 내용을 찾아보면 이해도가 높아질 수 있음 일단 끝까지 진행한 후에 반복해보면 처음에 이해하지 못한 부분을 이해하기 쉬울 수 있음 강의내용의 80%을 이해한다면 대박 리눅스 (LINUX) UNIX 계열 운영체제로, 인터페이스는 올드한 편.. 1. 서버에 많이 사용되는 운영체제 클라이언트에..

운영체제 - 마무리 정리

패스트캠퍼스 컴공전공 운영체제 마지막 강의 정리, 운영체제 마무리와 안드로이드 내부구조, IoT를 다루며 마무리지었다. 실제 운영체제의 이해 - 리눅스 운영체제 위의 사진은 강의자료의 일부인데, 리눅스 운영체제를 하드웨어 - cpu, ram, 저장매체, IO device, network 등으로 이루어져 있고, 리눅스 커널 - 핵심적인 5개의 component들로 구성되어 있으며 각각이 어떤 기능을 하는지, 하드웨어의 어떤 장치와 연관되어있는지 전반적으로 살펴볼 수 있다. Applications, Tools - 쉘이 사용자에게 인터페이스를 제공하여 응용프로그램을 실행시키거나 os와의 커뮤니케이션 등의 역할을 제공한다. 자료에 나와있지는 않지만, File system, Device driver 관련된 것들을..

패스트캠퍼스 2021.01.11

운영체제 - 가상머신의 이해

패스트캠퍼스-컴퓨터공학전공-운영체제-가상머신의이해 Virtual Machine (가상 머신) 하나의 하드웨어(cpu,memory 등)에 다수의 운영체제를 설치, 개별 컴퓨터처럼 동작하도록 하는 프로그램 최근 인공지능이나, 클라우드 컴퓨팅에서 가끔 사용되는 기술이다. 운영체제 레벨에서는 다루는 비중이 적으며, 하드웨어를 emulate 하는 기술이라고 한다. (소프트웨어를 이용해 하드웨어가 여러 개 인것처럼 보이게 하는 기술?) -> 학사 과정 이후에 세부전공으로 다루는 내용이므로 대략적인 이해만 하면 될 듯 일반적인 컴퓨터에서 위 그림의 비가상 기계처럼 작동한다면 가상머신이라는 소프트웨어가 하드웨어의 동작을 emulate. (모방) 각 가상머신마다 운영체제를 설치할 수 있어서, 마치 컴퓨터가 여러 대 인것..

패스트캠퍼스 2020.12.28

패스트캠퍼스 '컴퓨터 공학전공필수 올인원 패키지' 챌린지 참여후기

9월에 진행되고 있던 환급챌린지 모집 광고를 우연히 보고, 컴퓨터 공학 전공필수 올인원 패키지 라는 강의를 선택해서 해당 이벤트에 도전하게 되었다. 최종미션으로 이번 챌린지에 대한 주관적인 후기를 남기고자 한다. 비전공자로 개발자에 대한 도전을 시작한 입장에서 컴퓨터공학과에서 다루는 전공적인 지식들을 습득할 수 있는 기회가 괜찮아보였는데 전공자들이 4년동안 공부하는 내용에 대해 모두 다루는 것은 아니더라도 가볍게나마 접해보고자 시작을 했고, 기대 이상으로 좋은 내용의 강의들로 구성되어 있었다고 생각한다. 내가 선택한 강의에서는 소프트웨어 베이직, 운영체제, 시스템 프로그래밍, 컴퓨터 구조 네 가지의 큰 카테고리로 나누어져있었고, 개별 강의시간이 짧은 편이었지만 이런 내용을 처음 접하는 사람에게는 알맞은 ..

패스트캠퍼스 2020.12.26

자료구조/알고리즘 - 프림 알고리즘

패스트캠퍼스 - 컴공전공 - 소프트웨어 베이직 - 프림 알고리즘 프림 알고리즘 1. 최소 신장 트리 (Minimum Spanning Tree, MST) 개념과 원리에 대한 이해 2. 프림 알고리즘을 이용, 최소 신장트리를 구현하는 방법 * 최소 신장 트리 (Minimum Spanning Tree, MST) •신장 트리란 특정한 그래프에서 모든 정점을 포함하는 그래프 •최소 신장 트리는 스패닝 트리 중에서 간선의 가중치 합이 가장 작은 트리 위의 자료들에서 확인할 수 있는 것처럼 최소 신장 트리에서는 모든 노드를 연결하는데, 연결할 때 가장 적은 비용의 간선만 선택한다. 즉, 7만큼의 비용만을 소모하고 전체 노드를 연결하였다. 위의 일반적인 그래프에서 노드간의 연결에 24만큼의 비용을 소모했던 것과 대조적..

패스트캠퍼스 2020.12.18

운영체제 - 부팅

패스트캠퍼스 - 컴공전공 - 운영체제 - 부팅의 이해 부팅의 이해 - Boot •컴퓨터를 켜서 동작시키는 절차 •Boot program : 운영체제 커널을 storage에서 특정 주소의 물리 메모리로 복사하고, 커널의 처음 실행위치로 PC를 가져다 놓는 프로그램 * 폰 노이만 구조에 따르면, 모든 코드는 메모리의 특정 영역에 위치하고, 그 코드를 cpu에 가져와서 실행시켜야 한다. 하지만 부팅 시 메모리에는 아무런 정보도 없는데 어떻게 저장매체의 특정 운영체제 커널을 복사해서 메모리로 가지고 올 수 있을까? ROM-BIOS 라는 칩이 존재한다. (어떤 ROM 또는 특별한 RAM으로 구성되어 있는데, BIOS라는 프로그램이 내장되어 컴퓨터가 꺼져도 정보가 남아있다.) read/write 모두 가능하다 (바..

패스트캠퍼스 2020.12.18

운영체제 - 파일 시스템

패스트캠퍼스 - 컴공전공 - 파일시스템의 이해 파일 시스템 배경, inode 방식과 가상파일 시스템 파일 시스템 운영체제가 저장매체에 파일을 쓰기 위한 자료구조 또는 알고리즘 1. 비트로 관리하기에는 오버헤드가 너무 크다. 2. 블록 단위로 관리하기로 함 (보통 4KB) 3. 블록마다 고유번호를 부여해서 관리 -> 사용자가 각 블록 고유번호를 관리하기 어렵다. -> 추상적(논리적) 객체 필요 : file => 사용자는 파일단위로 관리 ( 각 파일에서 내부적으로 블록 단위로 관리 ) * 저장매체에 효율적으로 파일 저장하는 방법 가능한 연속적인 공간에 파일 저장 외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장기능 지원 필요 -> 블록체인 : 블록을 링크드 리스트로 연결 (끝에 있는 블록을 찾..

패스트캠퍼스 2020.12.17

자료구조/알고리즘 - 해시(Hash)

패스트캠퍼스 - 컴공전공 - 소프트웨어 베이직 - 자료구조/알고리즘 - 해시 해시 ( Hash ) 데이터를 최대한 빠른 속도로 관리하도록 도와주는 자료구조 메모리 공간 소모가 크지만, 매우 빠른 속도로 데이터 처리 데이터베이스 등의 소프트웨어에서 활용 입력받은 값 n에 대해 10으로 나눈 나머지 값 -> key 특정한 값(value)을 찾고싶을 때 그 값의 key로 접근 가능하다. 일반적으로 해시 함수는 모듈로(Modulo) 연산 등의 수학적 연산으로 이루어져 있으므로, O(1)의 시간 복잡도를 갖는다. - 해시의 충돌 어떤 값이든 입력값으로 받을 수 있지만, 해시 함수를 거쳐 생성되는 key의 수는 한정적이므로 key 중복이 발생할 수 있다. hash table에서 key가 중복되는 경우, 충돌(col..

패스트캠퍼스 2020.12.15

자료구조/알고리즘 - AVL 트리

패스트 캠퍼스 - 컴퓨터 공학전공 - 소프트웨어 베이직 - 자료구조와 알고리즘 자료구조와 알고리즘 - 탐색 - AVL 트리 1. AVL 트리 : 균형이 갖춰진 이진트리 (binary tree) 2. 완전 이진트리는 검색에 있어 O(logN)의 시간복잡도 3. AVL트리는 간단한 구현을 통해 특정 이진트리가 완전이진트리에 가까운 형태를 유지하도록 함 * AVL 트리는 균형 인수(Balance Factor) 개념을 이용 AVL 트리의 각 노드는 '균형인수'를 계산하기 위해 자신의 '높이(Height)'값을 갖는다. 균형 인수 = | 왼쪽 자식 높이 - 오른쪽 자식 높이 | -> 균형인수가 2 이상일 때, 문제가 있다고 판단 => AVL 트리는 모든 노드에 대한 균형인수가 +1, 0, -1 인 트리를 의미 균..

패스트캠퍼스 2020.12.15

운영체제 - 가상 메모리

가상 메모리 개념 페이징 시스템 다중단계 페이징 시스템과 페이징 시스템 장점 페이지 폴트 페이지 교체 알고리즘 세그멘테이션 기법 가상메모리 동작 총정리 페이징 시스템 (Paging system) 크기가 동일한 페이지로 가상 주소공간과 이에 매칭하는 물리 공간을 관리 하드웨어 지원 필요 ex) intel x86(32bit) 시스템에서는 4KB, 2MB, 1GB 지원 ex) 리눅스에서는 4KB로 paging 페이지 번호를 기반으로 가상주소/물리주소 매핑정보를 기록/사용 리눅스 -> 프로세서(4GB)의 PCB(process control block)에 Page Table 구조체를 가리키는 주소가 들어있음 page table에는 가상주소와 물리주소간 매핑정보가 있음 cpu가 가상주소에 접근하려하면 가상주소를 통..

패스트캠퍼스 2020.12.10