반응형

전체 글 265

운영체제 총 정리

운영체제의 역할은 무엇인가?CPU 스케줄링과 프로세스 관리메모리관리I/O 디바이스 관리디스크 파일 관리 CPU(중앙처리장치) 란?데이터와 명령어를 해석하고 실행하는 장치이다. CPU가 여러 개가 있으면 각자 해석하고 실행속도가 빨라진다.CPU는 제어장치, 산술연산장치, 레지스터로 구성되어 있다. 제어장치 : 여러 장치들을 컨트롤하고, 명령어를 해석한다. 산술논리장치 : 해석된 명령어에 따라 실제 연산을 수행하려면 필요하다. 레지스터 : 연산 수행시 메모장에다가 중간 중간 임시로 메모해가며 연산하는게 좋다. 명령어 인출(Fetch) 제어 장치가 프로그램 카운터(PC)를 통해 메모리에서 [ 3 더하기 5 ] 명령어를 가져온다.명령어 해독(Decode) 제어 장치가 명령어를 해독하며 [ 더하기 ] 연산을 수행..

카테고리 없음 2024.10.27

비선점형 방식

비선점형 방식(non-preemptive)프로세스가 스스로 CPU 소유권을 포기하는 방식이다. 강제로 프로세스를 중지하지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다.  FCFS(First Come, First Served)가장 먼저 온 것을 가장 먼저 처리하는 알고리즘이다. 길게 수행되는 프로세스 때문에 '준비 큐에서 오래 기다리는 현상' 이 발생하는 단점이 있다.  SJF(Shortest Job First)실행 시간이 짧은 프로세스를 가장 먼저 실행하는 알고리즘이다. 긴 시간을 가진 프로세스가 실행되지 않는 현상이 일어나며 평균 대기 시간이 가장 짧다. 하지만 실제로는 실행 시간을 알 수 없기 때무에 과거의 실행했던 시간을 토대로 추측한다.   우선순위기존 SJF 스케줄링의 경우 긴 시간을 ..

카테고리 없음 2024.10.20

프로세스와 컴파일 과정

전처리소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환한다. 컴파일러오류 처리, 코드최적화 작업을 하며 어셈블리어로 변환 어셉블러목적 코드(object code)[  컴퓨터가 처리할수 있는 코드 ] 로 반환 한다. 확장자는 운영체제마다 다른데 리눅스에서는 .o이다.  링커라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만든다. 실행 파일의 확장자는 .exe 또는 .out이라는 확장자를 갖는다.   프로세스의 메모리 구조 스택지역변수,매개변수, 리턴값을 저장 한다. 컴파일 시에 크기가 결정되며 '동적'인 특징을 갖는다.  힙동적 할당할 때 사용 되며 런타임 시 크기가 결정된다.  데이터 영역전역변수(Static), 정적변수(상수)가 저장되고, 정적인 ..

카테고리 없음 2024.10.20

공유 자원과 임계 영역

공유 자원(shared resource)시스템 안에서 각 프로세스, 스레드가 함꼐 접근할 수 있는 모니터, 프린트, 메모리, 파일, 데이터 등의 자원이나 변수 등을 말한다. 이 공유 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(rac condition)라고 한다.  동시에 접근을 시도할 떄 접근의 타이밍이나 순서 등이 결괏값에 영향을 줄 수 있는 상태 인것이다.  임계 영역(critical section) 둘 이상의 프로레스, 스레드가 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 코드 영역을 말한다. 임계 영역을 해결하기 위한 방법은 크게 뮤텍스, 세마포어 두 가지가 있으며, 이 방법 모두 상호 배제, 한정 대기, 융통성이란 조건을 만족해야한다. 상호 배제- 한 프로..

카테고리 없음 2024.10.13

운영체제와 컴퓨터

운영체제(OS, Perating System)사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 한정된 메모리나 시스템 자원을 효율적으로 분배하는 참된 일꾼이다. 참고로 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것을 펌위어(firmware)라고 한다.펌웨어(firmware)하드웨어의 기본적인 구동 및 제어를 담당하는 특수 용도의 소프트웨어   운영체제의 역할1. cpu 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다.2. 메모리 관리 : 한정된 메모리를 어떤 프로레스에 얼마큼 할당해야 하는지 관리한다.3. 디스크 파일 관리 : 디스크 파일을어떠한 방법으로 보관할지 관리한다.4. I/O 디바이스 관리 : I/O..

카테고리 없음 2024.10.11

탐욕법 - 섬 연결하기

이 문제는 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통해 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하는 것이다. costs를 그림으로 표현하면 다음과 같으며, 이때 초록색 경로로 연결하는 것이 가장 적은 비용으로 모두를 통행할 수 있도록 만드는 방법이다.  풀이여러개의 노드가 존재할 때 연결된 노드들을 같은 집합 구성원으로 묶어주는 알고리즘이다. 1. costs 배열을 건설 비용을 기준으로 오름차순으로 정렬한다.2. costs 배열을 처음 부터 돌며 연결할 양쪽 섬의 부모가 같은지 판별한다.  2-1. 부모가 같으면 해당 다리는 건설하지 않는다.  2-2 부모가 다르면 해당 다리를 채택하여 건설한다.3. 배열..

카테고리 없음 2024.10.11

이분탐색 - 입국심사

이 문제는 n명이 입국심사를 위해 줄을 서서 기다리고 있다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다르다. 처음에 모든 심사대는 비어있다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 해야한다. 문제풀이times 배열의 최고 값을 기준으로 이분탐색하면서 mid값으로 각 심사관이 몇명을 검색할 수 있냐만 계산하면 최소값을 구할 수 있다. max는 times가 오름차순으로 정렬 됬을 때, times[times.length-1] (가장 뒤) 에서 n 명 만큼 곱하면 된다...

카테고리 없음 2024.10.04

SSL 동작 방식

대칭키동일한 키로 암호화와 복호화를 같이 할 수 있는 방식의 암호화 기법 단점 : 암호화된 텍스트 + 대칭키를 같이 전송해야 되는데, 대칭키를 누군가 가져가면 암호화된 텍스트가 아무런 쓸모가 없어진다. 이를 해결하기 위해서는 비대칭키(공개키)를 사용한다. 비대칭키(공개키)암호화 방식은 비밀키와 공개키를 통해 암호화하는 방식이다. 공개키로 암호화한것은 오직 비밀키로 복호화가 가능하다.(그 반대도 가능)비밀키는 오직 자신만이 가지고 있고, 공개키는 누구나 가질 수 있도록 한다. 그리고 누군가 나에게 암호화된 데이터를 전송하고 싶을 땐 공개키를 통해 암호화해서 전송한다. 암호화된 정보는 오직 내가 가지고 있는 비밀키로만 복화가 가능하기 때문에 안전하다.  SSLSSL 인증은 SSL 인증서( 신분증 같은 개념 ..

네트워크 2024.09.29

HTTP / HTTPS

HTTP 1.0 은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계 되어있다. 서버로부터 파일을 가져올 때마다 TCP의 3-way hanshack를 계속해서 열어야 하기 떄문에 RTT가 증가하는 단점RTT(Round-trip ime, 왕복 시간) 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간   RTT의 증가를 해결하기 위한 방법매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어졌다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했다.  이미지 스플리팅많은 이미지를 다운받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐있는 하나의 이미지를 다운받고, 이를 기반으로 backgrou..

네트워크 2024.09.29

탐욕법 - 단속카메라

이 문제는 단속 카메라를 한 번 이상 만나게 하기 위해서는 차량의 경로가 겹치는 부분에 카메라를 최소한으로 설치해야한다. 이때, 경로가 겹치는 부분에 카메라를 설치하면 해당 경로를 통과하는 모든 차량이 카메라를 만나게 된다. 문제 풀이1. routes를 고속도로를 나간 지점을 기준으로 오름차순 정렬2. routes[0][1]위치에 카메라를 설치3. 반복문을 통해 routes를 탐색하면서 routes[i][0](시작지점)이 마지막에 설치한 카메라 위치보다 크다면 카메라를 routes[i][1]에 설치한다.  고속도로를 수평선이라 생각하고 그림을 그리면 더 쉬울것이다.import java.util.*;class Solution { public int solution(int[][] routes) { ..

카테고리 없음 2024.09.28
반응형