※블로그 내용은 저 '개인'의 기준으로 더 필요하다고 생각되는, 또는 한번 더 짚어보는 의미로 대부분 직접 필기한 것입니다. 수희 혼자 볼라고 쓴 블로그
현업 기술에 컴퓨터 공학이 어떻게 적용되고, 연결 되는지를 정리.
핵심 정리할 5대 과목 :
★★★기술면접에 필요한 내용=선명한 이해가 필요하다.
50%이해를 목표로! 곰곰히 생각하면서 여러 각도에서 생각하기.
깨닫는 과정을 익히느 것이 필요!
★★★깨달은 것을 말로 할수 있도록 연습
user->애플리케이션->operating system->하드웨어
안드로이는 운영체제가 아니다. 리눅스 커널 사용, 안드로이드 앱을 동작하기 위해 여러 구성 요소 갖고 있음.많은 프로그램 사이의 시스템.
커널은 운영체제의 부가적인 프로그램. 그 부가 프로그램 대표가 쉘.
쉘: 사용자가 운영체제 기능과 서비스를 조작할수있다록 인터페이스 제공
터미널환경(CLI)과 GUI환경 두종류, 유명한 쉘:리눅스bash
사용법=인터페이스를 제공한다는 의미/ 쉘은 하나의 응용 프로그램.
즉! 쉘은 사용자와 인터페이스를 함.
시스템 콜: 시스템 콜 or 시스템 호출 인터페이스
운영체제가 운영체제 각 기능을 사용할 수 있도록
시스템 콜이라는 명령 또는 함수를 제공.
프로그래밍 언어별 해당 운영체제에 맞는 api 구현
api (어플리케이션 프로그래밍 인터페이스)
모호한 용어이지만 간단히 함수 또는 라이브러리같은 것.
api 내부에는 필요시 해당 운영체제의 시스템 콜을 호출하는 형태로 만듬.
왜 프로그램이 os별로 있는가 파이썬, vscode 같이..
java프로그램 동작위해 jre(jdk)설치가 필요
함부로 응용프로그램이 전체 컴퓨터 시스템을 헤치지 못함.
cpu protection Ring
사용자모드(user mode): 응용 프로그램이 사용
커널 모드: OS가 사용
시스템 콜은 커널모드로 실행.시스템 콜은 운영체제 제공
커널 모드로 실행하려면 반드시 시스템콜을 사용해야함.
앱 스토어에서 다운받은 앱이 휴대폰 데이터를 삭제하는 코드가 들어있다면? 앱이 동작하기 위해 필요한 권한을 사용자에게 입력받는 이유.
정리:
- 운영체제는 시스템 콜 제공
- 프로그래밍 언어별 운영체제 지원 위해 운영체제 별 api제공
- 응용 프로그램 개발시 운영체제 기능이 필요한 경우, 해당 api를 사용해서 프로그램 작성
- 응용프로그램 실행시, 해당 api호출하면 시스템 콜호출, 커널모드로 변경후, OS내부에서 해당명령 실행되고 응용프로그램에 결과 return
운영체제 역할1: ★시스템 자원(system resource)★관리자
컴퓨터 하드웨어를 관리! cpu + 메모리 io 등..
역할2: 사용자와 컴퓨터간의 커뮤니케이션 지원
역할3: 응용프로그램 제어,관리,효율적 분배
응용프로그램이란?소프트웨어 (운영체제,응용 프로그램)
소프트웨어 = 운영체제,응용프로그램(엑셀,ppt 등)
응용 프로그램 =애플리케이션(pc에서의 프로그램), app(폰 응용프로그램)
운영체제는 응용프로그램을 관리/실행시킴.
응용프로그램 간의 권한을 관리(관리자 권한으로 실행)
사용하는 사용자도 관리(로그인)
(알고리즘)
더 자세한 것은 학습요약18에서 다뤄보자.