내가 만드는 개발자 교안 (23) 썸네일형 리스트형 Every CS - 운영체제(OS) 05 - 파일 시스템 파일 시스템보저기억장치의 정보를 파일 및 디렉터리의 형태로 저장하고 관리할 수 있도록 하는 운영체제 내부 프로그램파일과 디렉터리파일파일의 구성 파일의 이름, 파일을 실행하기 위한 정보, 속성(메타데이터, 파일과 관련한 부가 정보)파일을 다루는 모든 작업은 운영체제에 의해 이루어진다. 응용 프로그램은 임의로 파일을 할당받아 조작하고 저장할 수 없고, 파일을 다루는 시스템 콜을 이용해야 한다.파일 디스크립터프로세스가 파일을 식별할 수 있는 정보open()의 반환값 및 write()의 인자가 된다.디렉터리 (폴더)관리 방식 : 트리 구조 디렉터리루트 디렉터리와 서브 디렉터리로 구성되며, 슬래시(/)로 구분되는 경로를 사용하여 표시한다.경로 : 디렉터리 정보를 활용해 파일 위치를 특정하는 정보디렉터리 엔트리 :.. Every CS - 운영체제(OS) 04 - 가상 메모리 가상 메모리서론CPU와 프로세스들이 메모리의 몇 번지에 무엇이 저장되어있는지 알고 있지 않다.CPU의 저장공간이 메모리의 저장공간보다 훨씬 작기 때문이다.물리 주소와 논리 주소물리 주소 : 메모리의 하드웨어 상 실제 주소논리 주소 : 프로세스마다 부여되는 0번지부터 시작하는 주소 체계 ※ 논리 주소는 중복이 발생될 수 있음논리 주소는 가상의 주소이기 때문에 실제 주소인 하드웨어 상의 메모리와 상호작용하기 위해서는 반드시 논리 주소와 물리 주소간의 변환이 이루어져야 한다.이를 위해서 존재하는 하드웨어를 메모리 관리 장치(MMU - Memory Management Unit)가 있다.스와핑과 연속 메모리 할당스와핑메모리에 적재된 프로세스 중 실행되지 않는 프로세스가 있을 수 있다.이러한 프로세스들을 임시.. Every CS - 운영체제(OS) 03 - CPU 스케줄링 CPU 스케줄링개념 정리CPU 스케줄링 : 다양한 프로세스와 스레드에 CPU의 사용을 배분하는 방법CPU 스케줄링 알고리즘 : CPU 스케줄링의 절차CPU 스케줄러 : CPU 스케줄링 알고리즘을 결정하고 수행하는 운영체제의 일부분1. CPU 스케줄링우선순위모든 프로세스는 CPU의 자원을 필요로 하기 때문에 운영체제는 공정하고 합리적인 방법으로 CPU의 자원을 프로세스에 할당해야 한다.따라서 운영체제는 프로세스별 우선순위를 판단하여 PCB에 명시하고, 우선순위가 높은 프로세스에 CPU의 자원을 더 빨리, 더 많이 할당한다.윈도우의 Process Explorer에서 소프트웨어의 Prioriy 항목을 확인할 수 있다.우선순위 할당 방법1. CPU 활용률 : 전체 CPU의 가동 시간 중 작업을 처리하는 시간의 .. Every CS - 운영체제(OS) 02 - 프로세스와 스레드 운영체제 02 - 프로세스와 스레드프로세스의 유형 : 포그라운드 프로세스, 백그라운드 프로세스프로세스를 구성하는 메모리 : 커널 영역, 사용자 영역(스택 영역, 힙 영역, 데이터 영역, 코드 영역)1. 사용자 영역프로그램 실행 중 크기가 변하지 않는 정적 할당 영역 : 코드 영역, 데이터 영역1. 코드 영역 실행 가능한 명령어가 저장되는 공간 CPU가 읽고 실행할 명령어가 있는 read-only 공간2. 데이터 영역 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간 주로 정적 변수, 전역 변수가 저장된다.크기가 변할 수 있는 동적 할당 영역 : 힙 영역, 스택 영역1. 힙 영역프로그램을 만드는 사용자가 직접 할당 가능한 저장 공간프로그램 실행 중 자유롭게 사용 가능함.메모리를 .. Every CS - 운영체제(OS) 01 - 운영체제의 역할 및 실행 운영체제 01 - 운영체제의 역할 및 실행운영체제는 2가지의 핵심 기능이 있다.자원 할당 및 관리프로세스 및 스레드 관리운영체제의 역할자원이란?자원(Resource) : 프로그램 실행에 마땅히 필요한 요소데이터, 부품 등CPU관리 : CPU 스케줄링실행 중인 모든 프로그램을 공정하고 합리적으로 CPU를 할당 받도록 CPU의 할당 순서와 사용 시간을 결정하는 것메모리 관리 : 가상 메모리실제 물리적인 메모리 크기보다 더 큰 메모리를 이용할 수 있도록 하는 기술파일/디렉터리 관리 : 파일 시스템보조기억장치를 효율적으로 관리하기 위해 내부 정보를 파일 및 폴더 단위로 접근 및 관리할 수 있도록 만드는 내부 프로그램프로세스 및 스레드 관리프로세스 : 실행 중인 프로그램스레드 : 프로세스를 이루는 실행의 단위동시.. Every CS - Network 04 - HTTP 1. HTTP 개요HTTP란 무엇인가?HTTP(HyperText Transfer Protocol)이란 웹 상에서 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜주로 웹 브라우저(클라이언트)가 웹 서버에 요청을 본내고, 서버가 그에 대한 응답을 반환하는 방식으로 동작한다.역할데이터 전송 : 텍스트, 이미지, 동영상 등 다양한 형태의 데이터를 전송상태 관리 : 클라이언트와 서버 간의 상호작용 상태를 관리표준화 : 웹 통신의 표준을 제공하여 다양한 기기와 애플리케이션 간의 호환성 보장클라이언트-서버 모델클라이언트요청을 보내는 주체 (보통 웹 브라우저)서버요청을 받아 처리하고 응답을 보내는 주체 (웹 서버, 개발자의 백엔드서버)동작 방식클라이언트가 특정 서버에 특정 리소스 요청서버가 요청을 처리하고 적절.. 02. 04 파이썬 기초 04 - 자료구조 02 비시퀀스 데이터 구조(세트, 딕셔너리) 비시퀀스 데이터 구조1. 세트세트 메서드s.add(x) : 세트에 x를 추가한다. 이미 x가 있다면 변화가 없다.sample = {'a', 'b', 'c', 1, 2, 3}sample.add(4)print(sample) # {'c', 2, 3, 1, 'b', 'a', 4}sample.add('a')print(sample) # {'c', 2, 3, 1, 'b', 'a', 4}s.clear() : 세트의 모든 항목을 제거한다.sample = {'a', 'b', 'c', 1, 2, 3}sample.clear()print(sample) # set()s.remove(x) : 세트에서 항목 x를 제거한다.x가 없으면 오류를 발생한다.sample = {'a', 'b', 'c', 1, 2, 3}sample... 02. 03 파이썬 기초 03 - 자료구조 01 시퀀스 데이터 구조(문자열, 리스트) 시퀀스 데이터 구조1. 문자열문자열 조회, 탐색 메서드s.find(x, i) : 문자열의 i번째 인덱스 부터 시작해서 x가 처음으로 나오는 위치를 반환한다.없으면, -1을 반환한다.i는 입력하지 않아도 되고 0 이 기본값으로 설정된다.sample = 'alphabet'find_a = sample.find('a')print(find_a) # 0find_next_a = sample.find('a', 3)print(find_next_a) # 4find_k = sample.find('k')print(find_k) # -1s.index(x, i) : 문자열의 i번째 인덱스 부터 시작해서 x가 처음으로 나오는 위치를 반환한다.없으면, 오류가 발생한다.i는 입력하지 않아도 되고 0 이 기본값으로 설정된다.sam.. 02. 02 파이썬 기초 02 - 데이터 타입 (Data Types) Data Types개요변수의 종류그 변수에 사용하는 연산과 동작 등을 결정하는 속성데이터 타입 분류Numeric Data : int, float, complexText Sequence : strSequence : list, tuple, rangeNon-Sequence : set, dictBoolean, None, Function, .....데이터 타입을 공부해야 하는 이유변수에 저장된 데이터 타입을 어떻게 처리해야 하는지 구분할 수 있음데이터 타입을 통한 유효성 검사를 할 수 있음명확한 타입을 통한 가독성 및 유지보수성을 향상시킬 수 있음특정 연산에 최적화된 특정 데이터 타입들을 공부하고, 성능을 최적화 할 수 있음Numeric Data1. int : 정수 자료형숫자를 그냥 할당하면 정수형이 된다.dat.. 02. 01 파이썬 기초 01 - 파이썬 기본 구조 표현식과 값표현식값, 변수, 연산자 등을 조합하여 계산되고 결과를 내는 코드 구조문장실행 가능한 동작을 기술하는 코드 (일반적으로 여러 표현식을 포합한다.)평가표현식이나 문장을 실행하여 그 결과를 계산하고 값을 결정하는 과정타입과 연산자타입 : 데이터의 종류 및 처리방식 등을 정의해놓음데이터 타입Numeric Typesint (정수), float (실수), complex (복소수)Sequence Typeslist, tuple, rangeText Sequence Typestr (문자열)Set TypessetMapping Typesdict기타None, Boolean, Functions연산자기호연산자-음수 부호+덧셈-뺄셈*곱셈/나눗셈//정수 나눗셈 (몫)%나머지**지수 (거듭제곱)연산자의 우선순위우선순위연산자.. 이전 1 2 3 다음 목록 더보기