분류 전체보기 101

네트워크 거시적으로 보기

[2024.10.21] 필수 온라인 강의 Part3 네트워크 CH01 오리엔테이션오리엔테이션컴퓨터 네트워크 : 여러 장치들이 서로 정보를 주고받을 수 있는 통신망- 망(거미줄처럼 얽히고 설킨것) : 각기다른 장비들이 각기다른 연결지점으로 바탕으로 정보를 주고 받음- 네트워크 장비, 호스트, 연결매체들(유/무선)인터넷(좁은범위X, 넓은 범위) = 네트워크의 네트워크 : 네트워크끼리 연결한 네트워크컴퓨터 네트워크 구성 요소 - 노드, 메세지, 간선(통신 링크)      (자료구조의 그래프에서 노드와 간선이 언급됨-그래프;노드와 그를 연결짓은 간선으로 이루어진 자료구조)- 노드 (=종단 시스템(end system) = 호스트(host) )    - 메세지(이메일, 파일 등 모든 것) 를 최초로 송신, 생성하는..

Study/CS 기초 2024.10.21

운영체제 - 파일 시스템

[2024.10.21] 필수 온라인 강의 Part2 운영체제 CH06 파일 시스템 - 운영체제 내부에서 파일과 디렉터리를 관리해주는 한 부분파일과 디렉터리파일시스템의 관리 대상 파일 시스템- 파일과 디렉터리(폴더)를 관리하는 커널의 한 부분 - 다양한 파일 시스템이 있고, 여러 파일 시스템을 동시에 사용할 수 있음파일 (file)- 보조기억장치의 의미있는 정보의 집합- 구성 요소 : 이름, 실행하기 위한 정보, 부가 정보(메타데이터, 속성)          - 속성 : 유형 (확장자), 크기, 생성 날짜, 마지막 접근 날짜, 마지막 수정 날짜, 생성자, 소유자, 위치블록(block) - 파일(+ 디렉터리) 접근 단위- 섹터 단위로 접근하지 않음 : 하드디스크 제일 작은 단위(섹터)- 운영체제가 보조기억장..

Study/CS 기초 2024.10.21

운영체제 - 가상 메모리 관리

[2024.10.21] 필수 온라인 강의 Part2 운영체제 CH05 가상 메모리 관리페이징과 페이지 테이블 스와핑(swapping) : 프로세스를 보조기억장치의 일부 영역으로 쫓아내고 당장 필요한 프로세스를 적재하는 메모리 관리 기법            - swap : cpu는 실행중인 메모리내에서 코드를 가져와서 사용: 현재 사용되지 않는 프로세스 중에서 굳이 메모리에 필요없는게 있을 수도 있음 : 일부 영역으로 당장 사용되지 않는 프로세스들을 내쫓을 수 있음   - 스왑 아웃(swap-out) : 프로세스를 보조기억장치의 일부 영역으로 쫓아내는 것   - 스왑 인(swap-in) : 스왑 아웃된 프로세스를 메모리에 적재하는 것   - 스왑 영역 : 스왑 아웃된 프로세스가 적재되는 보조기억장치 영역장..

Study/CS 기초 2024.10.21

운영체제 - 동기화와 교착상태

[2024.10.21] 필수 온라인 강의 Part2 운영체제 CH04 동기화와 교착상태프로세스 뿐만 아니라 스레드도 스케쥴링, 동기화 대상이다. 모든 흐름을 가진 것은 동기화 대상프로세스 동기화자원은 한정됨 : 운영체제는 적재적소에 효율적이고 공정하게 자원을 배분- 동시다발적으로 실행되는 프로세스(& 스레드) : 실행 순서와 자원의 일관성을 고려하여 보장동기화의 의미- 실행 순서 제어: 프로세스를 올바른 순서로 실행하기 - 상호 배제: 동시에 접근해서는 안되는 자원에 하나만 접근하기 실행 순서 제어를 위한 동기화 아래 두개의 프로세스가 동시다발적으로 실행이 되었다면?           1. Book.txt가 없다면 파일을 만들고 값을 쓰고 저장하는 프로세스           2. Book.txt를 읽어..

Study/CS 기초 2024.10.21

운영체제 - CPU 스케줄링

[2024.10.19] 필수 온라인 강의 Part2 운영체제 CH03 CPU 스케줄링프로세스 우선순위와 스케쥴링 큐cpu 스케줄링 : cpu 자원을 할당하는 방법프로세스와 스레드 모두 포함된다.스케줄링 = 운영체제가 공정하고 합리적으로 자원(CPU, 디스크, 메모리 등등) 을 배분하는 방법      - 모든 프로세스(및 스레드)는 실행되기 위해 자원을 필요CPU 스케줄링 = 운영체제가 공정하고 합리적으로 CPU를 배분하는 방법     - 모든 프로세스(및 스레드)는 실행되기 위해 CPU를 필요로 함    - CPU 자원은 한정되어 있고 실행 중인 프로세스는 여러 개    : 정해진 시간마다 돌아가면서 cpu를 사용하면 XXX           : 우선순위(PCB에 명시)가 다르다!!!!         -..

Study/CS 기초 2024.10.19

운영체제 - 프로세스와 스레드

[2024.10.19] 필수 온라인 강의 Part2 운영체제 CH02 프로세스와 스레드* 기술면접 단골 질문! 암기할 내용!커널 영역과 사용자 영역의 프로세스프로세스 = 실행중인 프로그램!!!!!- 메모리는 운영체제가 적재되는 커널 / 사용자가 사용하는 게 적재되는 사용자 영역- 같은 프로그램도 별도의 프로세스가 될 수 있다- 여러번 시행하면, 어러개의 프로세스가 된다. - 꼭 중복 적재 XX : 가장 메모리로 되는 경우도 있음! 중복 적재 안 되고, 별ㄹ도의 프로세스가 되는 경우가 있다! 리눅스 운영체제에서는 ps 명령어를 통해서, 실행중인 프로세스들을 확인할 수 있음프로그라운드 프로세스 & 백그라운드 프로세스              - 대표적으로 나누어지는 프로세스 ( 프로세스의 종류는 정말 다양하게..

Study/CS 기초 2024.10.19

운영체제 거시적으로 보기

[2024.10.18] 필수 온라인 강의 Part2 운영체제 CH01 오리엔테이션오리엔테이션 (시스템) 리소스 ; 자원 : 실행에 마땅히 필요한 요소"리소스 소모/낭비""리소스 모니터링"  운영체제컴퓨터 구조 파트에서 학습한 리소스들은 누가 움직이게 만들까 : 운영체제- 자원을 관리하고 할당하는 특별한 프로그램- windows, macOs, Linux, android, ios 등등메모리 내에 운영체제가 적재되는 공간이 따로 있음 : 커널 영역 :              - 메모리 할당, 반환 / CPU 할당, 반환 / 디스크 할당, 반환- 나머지 영역 : 사용자 영역 : 우리가 쓰는 공간- 하드웨어와 프로그램 사이에 있는 느낌! : 나라로 보면 정부라고 생각하자!!! 그러면 이해가 잘 된다.      ..

Study/CS 기초 2024.10.19

[2024.10.18] 컴퓨터 공학 개론

* 강의를 듣고 필기한 내용일 이후에 따로 정리한 내용입니다.* https://glowdp.tistory.com/33 에서 이어지는 게시물 입니다.File system컴퓨터에는 다양한 파일들이 저장장치에 저장 - 운영체제가 저장장치에 있는 데이터를 효율적으로 CRUD 할 수 있는 것을 File system- File - Directory - block : 저장 장치의 고정된 데이터 저장 최소 단위(논리적인 단위) : 블록은 최소단위라서 통제로 가져온다.        - storge에 다녀오는 거 큰일 : 한번에 끝냄        - OS는 블록단위인데, 최대한 많이!!!! - inode : file, Directory의 구조에서 pointer를 이용한 관리를 위한 값        - unix기반이 모두 ..

[2024.10.17] 컴퓨터 공학 개론

* 강의를 듣고 필기한 내용일 이후에 따로 정리한 내용입니다.* https://glowdp.tistory.com/32 에서 이어지는 게시물 입니다.Memory Hierarchy1. Registers : CPU 내부에 위치하며, 가장 빠른 속도로 데이터에 접근할 수 있는 기억장치              - CPU가 처리할 데이터나 명령어를 저장하고, 중간 결과를 보관     2. Cache Memory : Register와 메인 메모리 사이에 위치하는 기억장치              - CPU가 처리할 데이터나 명령어를 미리 가져와 저장하므로, 더 빠른 속도로 접근이 가능              - 일반적으로 캐시는 L1, L2, L3 등의 레벨로 나누어져 있으며, 각 레벨마다 용량과 접근 속도가 다름  ..

[2024.10.16] 컴퓨터 공학 개론

* 강의를 듣고 필기한 내용일 이후에 따로 정리한 내용입니다.* https://glowdp.tistory.com/28 에서 이어지는 게시물 입니다.Sorting algorithms - 정렬 알고리즘은 주어진 데이터를 정해진 순서대로 재배열하는 알고리즘이다. (ascending, descending)Bubble Sort - Time Complexity : O(N^2)- 인접한 두 원소를 비교하면서 큰 값을 뒤로 보내며 정렬- 가장 큰 값을 가장 마지막으로 보내는 것 = 한번의 step    - 한번의 step이 끝나면 뒤에서부터 정렬- 버블정렬의 시간복잡도는 O(N^2)이고 어느정도 정렬된 상황에서는 swap이 많이 일어나지 않아 효과적이라고 볼 수 있음.# bubble sort를 구현해봅시다!def bu..