
프로세스 단위의 관리의 문제점 프로세스 코드를 순서대로 실행하게 되면 원하는 기능의 코드를 찾기까지 (큰 프로그램이라면) 오버헤드가 있을 수 있다. 위의 이미지에서 보는 프로그램은 정말 간단하지만,, 프로세스를 기능단위로 쪼개어 별도로 실행시켜 오버헤드의 단점을 극복하고자 쓰레드(Thread) 라는 개념이 등장했다고 한다. 쓰레드(Thread) 쓰레드는 하나의 프로세스에서 코드를 기능별로 구분한 것이다. 그래서 쓰레드를 경량 프로세스라고도 부른다. 운영체제는 프로세스 단위가 아닌 쓰레드 단위로 스케줄링을 한다. 쓰레드의 장점은 다음과 같다. 자신의 기능만 수행하면 된다. 한 쓰레드가 블록되어도 다른 쓰레드는 실행 가능하다 동일한 프로세스에 포함되는 쓰레드를 각각 다른 CPU에서 실행할 수 있다. 동일한 ..

인터럽트 인터럽트는 CPU가 프로세스를 실행하고 있을 때 이벤트가 발생하여 처리가 필요한 경우 CPU에게 알리는 것을 의미한다. 프로세스 교환을 유발하는 인터럽트와 트랩 CPU에서 실행중인 프로세스가 교체되는 이유는 다음과 같다. Clock(Timer) 인터럽트 : CPU에서 프로세스당 최대 허용 실행 시간이 정해져있는데 해당 시간이 지나가게 되면 프로세스가 교체된다. 실행중이던 프로세스는 다시 준비 큐에 들어가게 된다. I/O 인터럽트 : 실행중인 프로세스가 입출력을 요청하면 프로세스는 블록상태가 된다. 입출력 요청이 끝나면 블록상태에 있던 프로세스는 다시 준비 큐로 들어가 실행될 준비를 한다. 메모리 폴트 (페이지 부재) : 실행중인 프로세스는 주기억장치에 로드되지 않은 주소를 요청할 경우 메모리 폴..

CPU 스케줄링 CPU에 어떤 프로세스를 할당해야할 지 결정하는 방법이다. 프로세스 상태 프로세스 스케줄링을 하기 위해서는 프로세스 상태가 필요하다. 프로세스 상태를 고려하여 운영체제는 CPU 스케줄링을 하게된다. 프로세스의 일생은 생성에서 시작하여 종료로 끝난다. 프로세스의 생성 프로세스가 생성되면 메모리에 주소공간이 생성되고 PCB가 생성된다. 리눅스는 fork를 이용하여 프로세스 를 생성하고 윈도우는 CreateProcess API를 이용하여 프로세스를 생성한다. 프로세스가 생성되는 조건은 다음과 같다. 새로운 일괄처리 작업 대화형 로그온 : 사용자가 터미널에서 시스템에 로그인을 하는 경우 서비스를 제공하기 위해 운영체제가 생성 기존 프로세스에 의한 생성 : 병렬성을 활용하기 위해 사용자 프로그램가..

운영체제 사용자에게 효율적이고 편리한 환경을 제공하는 것이 운영체제의 가장 큰 목표이다. 운영체제는 처리 능력이 빨라야 하고, 신뢰도가 높아야하며 응답시간이 빠른 환경을 제공할 수 있어야한다. 처리 능력 : 단위 시간당 사용자의 요청을 얼마나 빠르게 처리할 수 있는 능력이다. 신뢰도 : 하드웨어와 소프트웨어가 실패없이 사용자의 요청을 처리할 수 있는 능력이다. 응답 시간 : 사용자가 요청을 한 뒤 응답이 도착할 때 까지의 시간 프로그램 vs 프로세스 프로그램 : 파일시스템에 저장되어있는 실행 파일을 프로그램이라고 한다. 프로세스 : 프로그램이 실행되어 메모리에 할당된 상태를 프로세스라고 한다. 하나의 컴퓨터에서는 여러 프로세스가실행되기 때문에 운영체제는 프로세스를 효율적으로 관리해야한다. 프로세스 구조 ..
- Total
- Today
- Yesterday
- spring
- db
- SpringGraphQL
- N+1
- Til
- 인덱스
- EC2
- SpringSecurity
- ddl-auto
- 트랜잭션
- nginx
- TCP
- 기술면접
- JPA
- OS
- Oracle
- 운영체제
- ci/cd
- AWS
- Travis CI
- level0
- graphql
- 람다식
- ORA-27125
- 프로그래머스
- 파일업로드설정
- Java
- CodeDeploy
- 트랜잭션격리성
- 네이버클라우드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |