본문 바로가기

Learn

(4)
[IT 개념 정리] OS - 02. 프로세스 & 스케줄링 프로세스란? 프로그램의 명령어와 정적 데이터가 메모리에 적재되어 실행 중인 프로그램을 의미한다. 즉 프로그램의 인스턴스로 운영 체제의 가장 기본적인 실행 단위이다. 프로세스의 메모리 구조 프로세스의 주소 공간은 Text, Data, Heap, Stack영역으로 구성되어있다. 지역변수나 함수 호출과 같은 것은 스택영역에 할당되고, 동적인 데이터는 힙 영역에 할당이 된다. 프로세스의 상태 프로세스는 총 5개의 상태(New, Ready, Running, Waiting, Terminated) 중 하나의 상태로 존재한다. 1. 프로그램의 실행을 위해 OS에 요청하면 New 상태로 생성된다. 2. 이후 프로세스가 실행 가능한 상태가 되면 Ready 상태가 된다. 3. CPU 스케줄러에 의해 실행 순서가 오면 Run..
[IT 개념 정리] OS - 01. 운영체제 란 운영체제란? 사용자 입장에서 응용 소프트웨어를 사용을 용이하게 하는 환경을 제공하며, 시스템의 입장에서 하드웨어를 효율적으로 사용하기 위해 자원 할당과 제어를 해주는 시스템 소프트웨어다. 운영체제의 개요 User Interface - 유저 또는 사용자가 직접적으로 사용하는 인터페이스로 GUI, CUI, Batch로 나뉜다. System calls - 운영체제의 각 서비스를 사용을 위해 시스템 콜을 받는다. 운영체제의 주요 목적과 역할 - 사용자와 시스템의 편리성을 높여야 한다. - 시스템의 성능을 효율적으로 사용 해야한다 : 처리량, 지연/응답시간, 신뢰도, 사용가능도 - 제어 서비스를 향상 시켜야 한다. 운영체제의 주 기능 학교 수업중에 운영체제 강의에서 들었던 기억으로 운영체제는 크게 프로세스관리, ..
[IT 개념 정리] 시간/공간 복잡도 & 정렬 알고리즘 정렬 알고리즘에 대해서 정리 하기전 자료구조에 이어 알고리즘을 하게 되면 가장 많이 사용하는 개념인 '시간복잡도 / 공간복잡도'에 대해서 먼저 정리를 해보려고 한다. 1. 시간 복잡도 / 공간 복잡도 시간 / 공간 복잡도는 왜 구하는 것인가? 알고리즘의 성능을 분석하기 위해서 사용하는 개념이다. 데이터 양이 많아지고 처리해야하는 방식의 변화에 따라 많은 시간과 공간이 쓰이게 되면서 해당 데이터 처리에 최적의 알고리즘을 사용하기 위해 사용 된다. 기본적으로 동일한 하드웨어에서 사용 된다는 가정하에 시간 / 공간 복잡도를 계산 한다. 시간 복잡도(Time Complexity) $T(n)$ : 알고리즘을 수행하는데 연산(산술, 대입, 비교, 이동)이 몇번 이뤄지는가? 빅오 표기법 : 시간 복잡도를 계산할때 상..
[IT 개념 정리] 자료구조 1. 자료구조란? 사전적인 의미 - 자료의 집합으로 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것. 목적 - 자료를 저장, 관리를 더 효율적으로 하기 위함으로 실행시간의 단축(시간복잡도)와 메모리 용량의 절약(공간복잡도)을 목적으로 자료구조를 선택한다. 즉, 컴퓨터에서 사용항 자료를 효율적으로 관리하고 구조화 하기 위한 작업이다. 2. 자료구조의 종류 자료구조는 자료의 구성에 따라 순차적으로 나열하는 선형구조, 비 순차적으로 나열하는 비선형구조로 나뉜다. 선형구조 - 선형리스트, 연결리스트, 스택, 큐, 데크 비선형구조 - 트리, 그래프 3. 선형구조 선형리스트 : 연속되는 기억장소에 저장되는 리스트 ≒ 배열(Array) 접..